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

TableView рд╕реЗрдЯрдЕрдк
рдХрд┐рд╕реА рддрд╛рд▓рд┐рдХрд╛ рдпрд╛ рд╕рд░рд▓ рддрд╛рд▓рд┐рдХрд╛ рджреГрд╢реНрдп рд╢реИрд▓реА рдореЗрдВ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдХрд┐рд╕реА рдЕрдиреНрдп рдпреВрдЖрдИрдЯреЗрдмрд▓ рд╡реНрдпреВ рдкрдВрдХреНрддрд┐ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рд╕реЗрдЯрдЕрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред
sectionHeaderHeight
рдФрд░ estimatedHeaderHeight
sectionHeaderHeight
рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПредUITableView.automaticDimension
рд╡рд╣ рд╣реИ рдЬреЛ рдСрдЯреЛрд▓реЗрдЖрдЙрдЯ рдХреЛ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдХреА рдКрдВрдЪрд╛рдИ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИредestimatedHeaderHeight
рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рд╕рдВрдХреЗрддрдХ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рд╕рдордЧреНрд░ рдКрдВрдЪрд╛рдИ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬрдм рдЖрдк рдЕрдкрдиреЗ рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдореЗрдВ TableView рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпреЗ рдЧреБрдг рдЖрдХрд╛рд░ рдирд┐рд░реАрдХреНрд╖рдХ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╣реЗрдбрд░ рд╡реНрдпреВ рдмрдирд╛рдирд╛
tableView(_: viewForHeaderInSection: )
рдХреЛ рдПрдХ UIView рдЙрджрд╛рд╣рд░рдг рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЕрдиреБрдорд╛рди рд╣реИ? UITableViewCell UIView рдХрд╛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╕реЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдФрд░ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдмрд┐рдЦрд░реА рдХрдИ xib рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рдЕрдкрдиреЗ рд╕рднреА рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред

рдореИрдВрдиреЗ рдПрдХ рд╕реЗрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рдпрд╛ рдЬрд┐рд╕рдореЗрдВ рдмрд╛рдИрдВ рдУрд░ рдПрдХ ImageView, рдПрдХ рдХреИрдкреНрд╢рди рдФрд░ рдПрдХ рд╡рд┐рд╡рд░рдг рд▓реЗрдмрд▓ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдПрдХ рд╕реНрдерд┐рд░ рдКрдВрдЪрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИред рд╣рдо рд▓реЗрдЖрдЙрдЯ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЗрдмрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реЗрд▓ рдХреА рдКрдВрдЪрд╛рдИ рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреЛ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд▓реЗрдмрд▓ рдХреЛ StackView рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕реЗрд▓ рд╕рд╛рдордЧреНрд░реА рджреГрд╢реНрдп рдХреЗ рд╕рднреА рдЪрд╛рд░ рдкрдХреНрд╖реЛрдВ рддрдХ рд╕реАрдорд┐рдд рд╣реИред рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдмрдирд╛рддреЗ рд╕рдордп рдореИрдВ StackView рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред

рджреГрд╢реНрдп рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
dequeueReusableCell(withIdentifier identifier: String) -> UITableViewCell?
ред рд╣рдо
forIndexPath:
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рднрд┐рдиреНрдирддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
forIndexPath:
рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реЗрдбрд░ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдВрдбреЗрдХреНрд╕рдкрд╛рде рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
forIndexPath:
рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╢реВрдиреНрдп рд╕реЗ рд▓реМрдЯрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХрддрд╛рд░ рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╢реАрд░реНрд╖рдХ рдХреЗ рдмрд┐рдирд╛ рдЕрдиреБрднрд╛рдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
guard let headerCell = tableView.dequeueReusableCell(withIdentifier: "header") else { return nil }
рдЦрд╛рд▓реА рдЕрдиреБрднрд╛рдЧ рдкреНрд░рдореБрдЦ
рдЬреИрд╕рд╛ рдХрд┐ рдпреЛрдЬрдирд╛рдмрджреНрдз рд╣реИ, рдпрджрд┐ рд╕рдореВрд╣ рдХреА рд╢реИрд▓реА рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рджреГрд╢реНрдп рдореЗрдВ рдЕрдиреБрднрд╛рдЧ рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд░реВрдкрд░реЗрдЦрд╛ 30 рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рдПрдХ рдЦрд╛рд▓реА рджреГрд╢реНрдп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧреАред Apple рдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдЧреЛрдВ рдХреА рддрд░рд╣ рджрд┐рдЦреЗ рддреЛ рдпрд╣ рдЕрдЬреАрдм рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рд╣рдо рд╕рд┐рд░реНрдл рдирд┐рдпрдореЛрдВ рдХреЛ рддреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред :)
рдЗрд╕рдХреЗ рдЖрд╕-рдкрд╛рд╕ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рд░рдВрддрд░
CGFLOAT_MIN
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ CGFloat рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдЧреИрд░-рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдореВрд▓реНрдп рдХреНрд░рдорд╢рдГ 3275-рдмрд┐рдЯ рдФрд░ 64-рдмрд┐рдЯ рдХреЛрдб рдХреЗ рд▓рд┐рдП 1.17549435e-38F рдпрд╛ 2.2250738585072014e-308 рд╣реИред рдЕрдВрдд рдореЗрдВ, рдпрд╣ рд╢реВрдиреНрдп рдкрд┐рдХреНрд╕реЗрд▓ рдирд╣реАрдВ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рддрд╛рд▓рд┐рдХрд╛ рджреГрд╢реНрдп рдореЗрдВ, рд╣реЗрдбрд░ рдХреА рдКрдВрдЪрд╛рдИ 0 рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдЙрд╕рдХреЗ рдмрд░рд╛рдмрд░ рдХрд┐рд╕реА рднреА рдореВрд▓реНрдп рдкрд░ рд╕реЗрдЯ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ
tableView(_:estimatedHeightForHeaderInSection:)
tableView(_:heightForHeaderInSection:)
tableView(_:estimatedHeightForHeaderInSection:)
рдФрд░
tableView(_:heightForHeaderInSection:)
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХрд╕реНрдЯрдо рджреГрд╢реНрдп рдХреА рдКрдВрдЪрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЕрд▓рдЧ-рдЕрд▓рдЧ рдКрдВрдЪрд╛рдЗрдпреЛрдВ рдХреЗ рд╢реАрд░реНрд╖рдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рд▓реЛрдЧреЛрдВ рд╕реЗ StackOverflow рдкрд░ рдЗрддрдиреЗ рд╕рд╛рд░реЗ рд╣реИрдХ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╣реИрд░рд╛рди рдерд╛ред рдпрд╣ рдПрдХ рд╕рд░рд▓ рдЯреНрд░рд┐рдХ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ TableView рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд▓рдЧрд╛рддрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрддрдирд╛ рд╣реА рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдЬрд┐рддрдирд╛ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╣реИред рдЕрдЪреНрдЫрд╛ рдХреЛрдбрд┐рдВрдЧ! :)