рд╣рдо UITableView рдмрдирд╛рддреЗ рд╣реИрдВред рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП

рдирдП рд╕рд╛рд▓ рдХреА рдЫреБрдЯреНрдЯрд┐рдпрд╛рдВ рдмреАрдд рдЪреБрдХреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧреА рдФрд░ рдмрд╣реБрдд рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреА рдореЗрд░реА рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ - рдирд╣реАрдВ! рдЖрдЬ рд╣рдо UITableViewDataSource рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП, UITableView рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╣рдо рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдХреЗ рдмрд┐рдирд╛ рд░реВрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗ, рдЯреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╣реЛрдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ, рд▓реЗрдЖрдЙрдЯ рдФрд░ UINavigationBar рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реЗ рд╣реЗрдбрд░ред


рдордЬрд╛рдХрд┐рдпрд╛ рдЪреБрдЯрдХреБрд▓реЗ рдкрд╕рдВрдж рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ YouTube рдкрд░ рдПрдХ рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛ рд╣реИред рдЦреИрд░, рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдЧрдВрднреАрд░ рд╣реЛрдЧрд╛ред рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред


рдПрдХ рдЦрд╛рд▓реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ, рдЬреЛ рднреА рдЖрдкрдХреЛ рдкрд╕рдВрдж рд╣реИ рдЙрд╕реЗ рдирд╛рдо рджреЗрдВ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдЬрд╛рдПрдВред UIKit рдореЗрдВ UITableViewController рдХреНрд▓рд╛рд╕ рд╣реИред рдЖрдк рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓реНрд╕ рдХреЛ рдЧреВрдЧрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рдЯреЗрдмрд▓ рдХреЛ рдЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдмреЗрд╣рддрд░ рд╕рдордЭ рдХреЗ рд▓рд┐рдП, рд╣рдо UIViewController рдХреЗ рдмреЗрд╕ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд░реЗрдВрдЧреЗред


рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рдЬрдм рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ UINavigationController рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:




рдЗрд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред AppDelegate рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, didFinishLaunchingWithOptions рдлрд╝рдВрдХреНрд╢рди, рдирд┐рдореНрди рдХреЛрдб рдбрд╛рд▓реЗрдВ :


let navigationController = UINavigationController.init(rootViewController: ViewController()) self.window = UIWindow.init(frame: UIScreen.main.bounds) self.window?.rootViewController = navigationController self.window?.makeKeyAndVisible() 

рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╢реИрдХреНрд╖рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо: рд╕реНрдЯреЛрд░рдмреЛрд░реНрдб рдФрд░ рдХреЙрдиреНрд╕реНрдЯреЗрдВрдЯ рдЕрдЪреНрдЫреЗ рд╣реИрдВ , рд▓реЗрдХрд┐рди рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╣рдо рдЙрдирдХреЗ рдмрд┐рдирд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдХреЛрдб рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдЧрд╛ (рдЖрдк рдЗрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ) рдФрд░ UINavigationController рдореЗрдВ ViewController рд▓рдкреЗрдЯреЗрдВред


UINavigationBar рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реАрд░реНрд╖рдХ рд╕реЗрдЯ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо ViewController рдХреНрд▓рд╛рд╕ рдореЗрдВ рдЬрд╛рдПрдВрдЧреЗ (рд╣рдо рдЖрдЧреЗ рдХрд╛ рд╕рд╛рд░рд╛ рдХрд╛рдо рдпрд╣рд╛рдВ рдХрд░реЗрдВрдЧреЗ) рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ viewDidLoad рд╡рд┐рдзрд┐ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:


 self.view.backgroundColor = UIColor.white self.navigationItem.title = "Table" self.navigationController?.navigationBar.prefersLargeTitles = true 

рдЕрдм рдЯрд╛рдЗрдЯрд▓ рдмрдбрд╝рд╛ рдФрд░ рдЯреНрд░реЗрдВрдбреА рд╣реЛрдЧрд╛ред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪрд▓рд╛рдирд╛, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦреЗрдВрдЧреЗ:




рдПрдХ TableView рдмрдирд╛рдирд╛


рддреИрдпрд╛рд░реА рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИ, рд╣рдо рдореБрдЦреНрдп рдЪреАрдЬ рдкрд░ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ, UITableView рдЧреБрдг рдмрдирд╛рдПрдБред рдПрдХ рдРрд╕рд╛ рдЖрд░рдВрднрд┐рдХ рдЪреБрдиреЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╕реНрдЯрд╛рдЗрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛред рдХреЛрдИ рднреА рдлрд╝реНрд░реЗрдо рд╕реЗрдЯ рдХрд░реЗрдВ, рд╣рдо рдмрд╛рдж рдореЗрдВ рдЙрд╕ рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВрдЧреЗред рдФрд░ рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, Grouped рд╕реЗрдЯ рдХрд░реЗрдВред


 let tableView = UITableView.init(frame: .zero, style: UITableView.Style.grouped) 

рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╢реИрд▓реА рдХрд╛ рдирд╛рдо рдХреНрдпреЛрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рдореВрд▓ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдЧреИрд░-рд╢реИрд▓реА рд╡рд╛рд▓реА рддрд╛рд▓рд┐рдХрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рдлреНрд░реЗрдо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдЗрдирд┐рд╢рд▓рд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред



рдЦрд╝рд╛рдХрд╛


рдпрд╣рд╛рдБ рд╣рдо рд╕реНрдерд┐рд░рд╛рдВрдХ рд╕реЗ рдмрдЪ рдЬрд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╣рдо рдЖрд╕рд╛рди рддрд░реАрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдореИрдВ рдЙрд╕ рд╡рд┐рдзрд┐ рдХреЛ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдмреЗрд╢рдХ, рд╡рд╣ рд╡рд┐рд╣рд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдирд╛рдЯрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдлреНрд░реЗрдо рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдЧрд╛, рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЖрдХрд╛рд░ рд▓реЗрдЧрд╛:


 private func updateLayout(with size: CGSize) { self.tableView.frame = CGRect.init(origin: .zero, size: size) } 

рдЖрдкрдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЛ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рд╡реНрдпреВрдбрд╛рд▓рдб рд╡рд┐рдзрд┐ рдФрд░ рд╡реНрдпреВрд╡рд┐рд▓рдЯреНрд░рд╛рдВрд╕рдореЗрдВрдЯ рдореЗрдВ :


 override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { super.viewWillTransition(to: size, with: coordinator) coordinator.animate(alongsideTransition: { (contex) in self.updateLayout(with: size) }, completion: nil) } 

рдЕрдм рдХрд┐рд╕реА рднреА рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдк рдЕрджреНрдпрддрд┐рдд рд╡рд┐рдзрд┐ рдореЗрдВ рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред


UITableViewCell рдмрдирд╛рдирд╛


рдЪреВрдВрдХрд┐ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ, рд╣рдо рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЕрдиреБрдХреВрд▓рди рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрдВрдЧреЗред рдЪрд▓реЛ рдЖрдзрд╛рд░ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдПрдХ рд╕реЗрд▓ рдХреНрд▓рд╛рд╕ рдмрдирд╛рддреЗ рд╣реИрдВ:


 class TableViewCell: UITableViewCell { } 

рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдХреНрд╖рд╛ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ViewController рдореЗрдВ , рдирд┐рдореНрди рд╡рд┐рдзрд┐ рдХреЛ рдЯреЗрдмрд▓ рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ:


 self.tableView.register(TableViewCell.self, forCellReuseIdentifier: "TableViewCell") 

рдпрджрд┐ рд╡рд░реНрдЧ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рддреЛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред 99% рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдирд┐рдпрдо рдХрд╛рдо рдХрд░реЗрдЧрд╛:


  • " рдПрдХ рд╣реА рд╡рд░реНрдЧ рдХреЗ рд╕реЗрд▓ рдореЗрдВ рд╕рдорд╛рди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП "

рдмрд╣реБрдд рдХрдо рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ рдЬрдм рдПрдХ рд╣реА рд╡рд░реНрдЧ рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рд╡реЗ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХреЛрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдФрд░ рдПрдирд┐рдореЗрд╢рди рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВред


рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд


рдпрд╣ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рднрд░ рджреЗрдЧрд╛ред рдпрд╛рдиреА UITableViewDataSource рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд▓рд╛рдЧреВ рдХрд░реЗрдВред рджреЛ рддрд░реАрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:


 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {} func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {} 

рдкрд╣рд▓реЗ рдЦрдВрдб рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдПрдХ рдЦрдВрдб рд╣реИ, рдПрдХ рдмрд╣реБрдХреНрд░рд┐рдпрд╛ (рдХреНрдпрд╛ рдРрд╕рд╛ рдХреЛрдИ рд╢рдмреНрдж рд╣реИ?) рд╣рдо рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рд╕реЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдЪрд╛рд▓рд╛рдХреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдордд рд╕реЛрдЪреЛ рдХрд┐ рддреБрдордиреЗ рдПрдХ рд╕реЗрдирд╛рдиреА рдХреЛ рдХрд╛рдЯ рд▓рд┐рдпрд╛ рд╣реИ!


рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдЖрдЗрдП рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░реЗрдЧреАред



рдЕрдм рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ:


 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { switch tableView { case self.tableView: return self.data.count default: return 0 } } 

рд╣рдо рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ 0 рд╡реЗрдВ рд╕реЗрдХреНрд╢рди рдореЗрдВ рдЙрддрдиреЗ рд╕реЗрд▓ рд╣реЛрдВрдЧреЗ рдЬрд┐рддрдиреЗ рдбреЗрдЯрд╛ рдРрд░реЗ рдореЗрдВ рддрддреНрд╡ рд╣реИрдВред рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рд╕реЗрд▓ рдХреЛ рдкреБрди: рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдФрд░ рд╕рднреА рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдХрд╛рд░рдгред рд▓реЗрдХрд┐рди рдПрдкреНрдкрд▓ рдХреЛ рдбрд╛рдВрдЯрдиреЗ рдХреА рдХреЛрдИ рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ! рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:


 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = self.tableView.dequeueReusableCell(withIdentifier: "TableViewCell", for: indexPath) as! TableViewCell cell.textLabel?.text = self.data[indexPath.row] return cell } 

DequeueReusableCell рдкрджреНрдзрддрд┐ рд╕реЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧреА, рдФрд░ рд╣рдо TableViewCell рдХреНрд▓рд╛рд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯрд╛рдЗрдкрдХрд╛рд╕реНрдЯ рдХрд░реЗрдВрдЧреЗ , рдЬреЛ рд╕реЗрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЯреЗрдХреНрд╕реНрдЯрд▓реИрдм рдПрдХ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдкреНрд░реЙрдкрд░реНрдЯреА рд╣реИ, рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред


рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рд╡реНрдпреВрдбрд╛рдпрд▓рд╛рдб рд╡рд┐рдзрд┐ рдХреЛ рдЕрдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП :


 override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = UIColor.white self.navigationItem.title = "Table" self.navigationController?.navigationBar.prefersLargeTitles = true self.view.addSubview(self.tableView) self.tableView.register(TableViewCell.self, forCellReuseIdentifier: "TableViewCell") self.tableView.dataSource = self self.updateLayout(with: self.view.frame.size) } 

рдпрджрд┐ рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рд╕реЗ рднрд░реА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:




рдкреБрдирд░реНрдкреНрд░рдпреЛрдЧ


рдЕрдм рддрдХ, рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИред рдЪрд▓реЛ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрдЯреАрдХрд░рдг рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ ред рдпрд╣ рдПрдХ рдПрдХреНрд╕реЗрд╕рд░реА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ iOS рдореЗрдВ рджреЗрдЦрд╛ рд╣реИ:



рдорд╛рди рд▓реЗрдВ рдХрд┐ рдХрд╛рд░реНрдп рдХреЗрд╡рд▓ рдкрд╣рд▓реА рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрддрдХ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИред рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреА рд╣реИ рд╡рд╣ рд╣реИ рд╕реЗрд▓рдлреЛрд░рд░реЙрд╡ рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдЬреЛрдбрд╝рдирд╛ред


 if indexPath.row == 0 { cell.accessoryType = .disclosureIndicator } 

рд▓реЗрдХрд┐рди рджреБрд╢реНрдорди рдЫрд┐рдкрд╛ рд╣реИ! рдЪрд▓реЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╕реНрдХреНрд░реАрди рд╕реЗ рдЯреЗрдмрд▓ рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╣реИрдВ:



рд╕реВрдЪрдХ рдкрд╣рд▓реЗ рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдкрд░рд╡рд╛рд╣реА рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ! рдпрд╣ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рд╕реЗрд▓ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдореЗрдореЛрд░реА рдореЗрдВ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ (рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг, рджрд╛рдПрдВ?) рдФрд░ рд╡рд┐рдзрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХрднреА-рдХрднреА рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕рдВрдХреЗрддрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд▓ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирддреАрдЬрддрди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕реА рдмрдЧ рд╣реИред рдХреНрдпрд╛ рдХрд░реЗрдВ?


рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рджреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рд╣реИрдВред рдкрд╣рд▓рд╛ рдЕрдиреНрдп рдмреНрд▓реЙрдХ рдореЗрдВ рд╣реИ рдФрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рд╕реЗрд▓ рдХреЗ рдЕрд╕реНрдкрд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЕрд░реНрде рд╣реИред рд╡рд┐рдзрд┐ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:


 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = self.tableView.dequeueReusableCell(withIdentifier: "TableViewCell", for: indexPath) as! TableViewCell cell.textLabel?.text = self.data[indexPath.row] if indexPath.row == 0 { cell.accessoryType = .disclosureIndicator } else { cell.accessoryType = .none } return cell } 

рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ - рд╕реЗрд▓ рдкрд░ рддреИрдпрд╛рд░рдлреЙрд░рдЗрдпреВрд╕ рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреБрди: рдЙрдкрдпреЛрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрд▓ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


 class TableViewCell: UITableViewCell { override func prepareForReuse() { super.prepareForReuse() self.accessoryType = .none } } 

рдкреБрди: рдЙрдкрдпреЛрдЧ рд╕реЗ рдЬреБрдбрд╝реА рдХрдИ рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреГрд╖реНрда рдкрд░ рдЕрдВрдХ рд▓рдЧрд╛рдирд╛, рдЕрдиреБрдХреВрд▓реА рдКрдВрдЪрд╛рдИ, рдПрдирд┐рдореЗрдЯреЗрдб рд╡рд┐рд▓реЛрдкрди рдФрд░ рд╕рдореНрдорд┐рд▓рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдпред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ, рдЕрдЧрд░ рдореЗрд░реЗ рд╣рд╛рде рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВ)


рд╕рд╛рдзрдХреЛрдВ рдХреЗ рд▓рд┐рдП


рдореИрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдЪреИрдирд▓ рдкрд░ рдПрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ ред рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдХреЛрдб рдбреНрд░рд╛ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдПрдкреНрдкрд▓ рдореНрдпреВрдЬрд┐рдХ рдкреНрд▓реЗрдпрд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреИрд╕реЗ рдмрдирд╛рдирд╛ рд╣реИ , рд╕рд╛рде рд╣реА рдЗрд╕ рдЖрд░реНрдЯрд┐рдХрд▓ рдкрд░ рдПрдХ рд╡реАрдбрд┐рдпреЛ:


Source: https://habr.com/ru/post/hi436390/


All Articles