рд╢реАрд░реНрд╖рдХ рдЕрд▓рдЧ рд╣реЛрдЧрд╛

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



рдореИрдВрдиреЗ рдРрдк рд╕реНрдЯреЛрд░ рдкрд░ рдЦреЛрдЬ рдореЗрдВ рдХреНрд╡реЗрд░реА "рдкрд┐рдЬреНрдЬрд╛ рдбрд┐рд▓реАрд╡рд░реА" рджрд░реНрдЬ рдХреА, рдкрд╣рд▓реЗ 24 рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдФрд░ рдЬрд╛рдВрдЪ рдХреА рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреМрди рдХрдо рджреГрд╖реНрдЯрд┐ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред



реирек рдореЗрдВ рд╕реЗ реи ред рдФрд░ рджреЛ рдореЗрдВ рд╕реЗ рдПрдХ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рджреБрд░реНрдШрдЯрдирд╛ рд╕реЗ рд╣реБрдЖ: рдЬреИрд╕рд╛ рдХрд┐ рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░ рдмрдврд╝рддрд╛ рд╣реИ, рдкреВрд░реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ "рддреИрд░рддрд╛ рд╣реИ" рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХреЗрд╡рд▓ рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рджреБрдЦрдж рд╣реИред

550,000 рд▓реЛрдЧ рд╣рд░ рдорд╣реАрдиреЗ рдбреЛрдбреЛ рдкрд┐рдЬреНрдЬрд╛ рдЖрдИрдУрдПрд╕ рдРрдк рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рд╣реИрдВред рднрд▓реЗ рд╣реА рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ 1% рдореЗрдВ рдлреЙрдиреНрдЯ рдмрдврд╝реЗ рд╣реБрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ 5500 рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рд╣рдЬ рд╣реИрдВред рд╣рдо рдЗрд╕реЗ рд╕рд╣реА рдХрд░реЗрдВрдЧреЗред

рдбрд╛рдпрдирд╛рдорд┐рдХ рдЯрд╛рдЗрдк рд╕рдкреЛрд░реНрдЯ рдЬреЛрдбрд╝реЗрдВ


  1. рд╣рдо рд╕реНрдереИрддрд┐рдХ рдХреЗ рдмрдЬрд╛рдп рдбрд╛рдпрдиреЗрдорд┐рдХ рд╕рд┐рд╕реНрдЯрдо рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
  2. рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдореЗрдВ рд▓реЗрдмрд▓ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдорд╛рдпреЛрдЬрди рдлрд╝реЙрдиреНрдЯ рдЪреЗрдХрдорд╛рд░реНрдХ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред рдпрд╛, рдпрджрд┐ рдмрдЯрди рдореЗрдВ рд▓реЗрдмрд▓ рдпрд╛ рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ adjustsFontForContentSizeCategory ред
  3. рд╣рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реНрдЯреНрд░реЗрдЪ рдХрд░рдирд╛ рд╕рд┐рдЦрд╛рддреЗ рд╣реИрдВ:
    - рд╣рдо рд╕реЗрд▓ рд╕рд╛рдЗрдЬрд╝ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЧрдгрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
    - рдЬрд╣рд╛рдВ рд╣рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдорд┐рд▓рддреА рд╣реИрдВ рдФрд░ traitCollectionDidChange рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддреЗ рд╣реИрдВред
  4. рд╣рдореЗрдВ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдорд┐рд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред




рд╣рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрджрд▓рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ


рд╣рдо рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реЛрдЪрдиреЗ рд▓рдЧрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рдХрд░рдирд╛ рд╣реИред

рдореЗрдиреВ рдореЗрдВ рдЬрдЧрд╣ рдХрд╛ рдЙрдЪрд┐рдд рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдЕрдм рдкрд┐рдЬреНрдЬрд╛ рдкрд┐рдХреНрдЪрд░ рдХреЗ рдиреАрдЪреЗ рдмрд╣реБрдд рд╕рд╛рд░реА рдЦрд╛рд▓реА рдЬрдЧрд╣ рд╣реИред рдЖрдЗрдП рдирд╛рдо рдХреЗ рдКрдкрд░ рдПрдХ рддрд╕реНрд╡реАрд░ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ: рдЗрд╕ рддрд░рд╣ рдпрд╣ рдмрдбрд╝рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЦрд╛рд▓реА рдЬрдЧрд╣ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдЧреАред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо UIStackView рдореЗрдВ рдмрд╛рдХреА рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдЪрд┐рддреНрд░ рдФрд░ UIStackView рдХрдВрдЯреЗрдирд░ рдХреЛ UIStackView , рдФрд░ рдлрд┐рд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рд╣рдо рд╕реНрдЯреИрдХ рджреГрд╢реНрдп рдХреА рджрд┐рд╢рд╛ рдмрджрд▓ рджреЗрдВрдЧреЗред



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



рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рджреВрд╕рд░реЗ, рдХрдо рджреГрд╖реНрдЯрд┐ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рджреЗрдЦрдирд╛ рдХрдард┐рди рд╣реЛрдЧрд╛ред рднрд▓реЗ рд╣реА рдЧреНрд░реЗ рд╕реЗ рдХрд╛рд▓реЗ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗред

рд╣рдо рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдирд┐рдХрд╛рд▓ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдмрд╕ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЗрдВрдЯрд░рдиреЗрдЯ рдмрдврд╝рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред



рдЕрдм рддреЛред

рд╕рдмрдЯреЛрдЯрд▓: рдЕрдзрд┐рдХ рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЖрдВрдЦреЗрдВ рд▓рд╛рдЗрди рд╕реЗ рд▓рд╛рдЗрди рддрдХ рдХрдо рдХреВрджрддреА рд╣реИрдВ, рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред

рд╣рдо рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдФрд░ рд╣рдЯрд╛рдиреЗ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ


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



рдореИрдВ рдпрд╣ рд╕рдм рджреЗрдЦрддрд╛ рд╣реВрдВ рдФрд░ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдкрд┐рдЬреНрдЬрд╛ рдлреЛрдЯреЛ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрд╣реБрдд рд╡рд┐рд╢рд╛рд▓ рд╣реИред рдЖрдЗрдП рдЗрд╕реЗ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рд╢рд╛рдпрдж рддрд╕реНрд╡реАрд░реЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЖрдк рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВред



рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рддрд╕реНрд╡реАрд░реЛрдВ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдореЗрдиреВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рдЦреЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдПрдХ рдореЗрдиреВ рдЖрдЗрдЯрдо рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдПрдХ iPhone 6S рдХреА рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдХрдо рдЖрдХрд░реНрд╖рдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╕рдордп рдбреНрд░реЛрд▓ рдкреНрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ред рдЕрднреА рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝ рджреЗрдВ, рдзреНрдпрд╛рди рд╕реЗ рд╕реЛрдЪреЗрдВ рдФрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдмрд╛рдж рдореЗрдВ рддрд╕реНрд╡реАрд░ рд▓реМрдЯрд╛ рджреЗрдВред

"рд▓рд╛рдЗрд╡" рдЪреЗрдХ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ


рдЕрдм рд╢реНрд░реЗрдгрд┐рдпрд╛рдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкрд╣рд▓реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рднреА рдпрд╣ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рд╕реЗ рдмрджрд▓ рдЧрдпрд╛ред рдПрдХ рдирдпрд╛ рдЪрд╛рд▓реВ рдХрд░реЗрдВред



рдореИрдВрдиреЗ рдореЗрдиреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░рдиреЗ рдФрд░ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдлрд┐рд░ рднреА, рдпрд╣ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рд╛: рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореЗрдиреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╕рдордп, рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрд╡рд┐рдЪ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ, рдФрд░ рдЗрддрдиреЗ рдмрдбрд╝реЗ рдкрд┐рди рдкрд░ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЖрдЗрдП UICollectionView рдХреЛ рдПрдХ рдмрдЯрди рд╕реЗ рдмрджрд▓реЗрдВ рдЬреЛ UICollectionView рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред



Voootред рдЕрдм рдЖрдк рд╢реАрд░реНрд╖ рдкреИрдирд▓ рдкрд░ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╢рд╣рд░, рд╕реНрдЯреЙрдХ, рдкрддрд╛ рдФрд░ рдкреНрд░рдЪрд╛рд░ рдХреЛрдбред

рдмрд╣реБрдд рд▓рдВрдмреА рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛


рдкрд╣рд▓реЗ, рдЪрд▓реЛ рд╢рд╣рд░ рдХрд╛ рдПрдХ рдкрд┐рдХ рд▓реЗрддреЗ рд╣реИрдВред рдмрдЯрди рдореЗрдВ рдлрд╝реЙрдиреНрдЯ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╝реЙрдиреНрдЯ рдХреЗ рд╕рд╛рде рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП "рддреНрд░рд┐рдХреЛрдг" рд╕рд┐рдЦрд╛рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рддреНрд░рд┐рдХреЛрдг рдХреЛ рдмрдЯрди рдореЗрдВ рдПрдХ рдЖрдЗрдХрди рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ CGAffineTransform рдорд╛рдзреНрдпрдо рд╕реЗ рджрд╛рдИрдВ рдУрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк NSAttributedString рдХреЛ рдкрд╛рда рдФрд░ рддреНрд░рд┐рдХреЛрдг рдЖрдЗрдХрди рд╕реЗ рдЗрдХрдЯреНрдард╛ NSAttributedString рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдмрдЯрди рдкрд░ рд╕рднреА рдХреЛ рдЦрд┐рд▓рд╛рдирд╛ рд╣реИред рдЖрдЗрдХрди рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рд╡реЗрдХреНрдЯрд░ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╡реЗрдХреНрдЯрд░ рдбреЗрдЯрд╛ рдЪреЗрдХрдорд╛рд░реНрдХ рдХреЗ рд╕рд╛рде рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред


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

рдЕрдм рд╣рдо рдбреЛрдбреЛ-рд░реВрдмрд▓ рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ:



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

рдореЗрдВ рд╕рдВрдХрдЯ


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

рдкрд░рд┐рд╕рд░ред

рддреЛ, рд▓реЗрдХрд┐рди рдЖрдк рдлрд┐рд░ рд╕реЗ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╣реЗрдбрд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдкреВрд░реА рдЬрдЧрд╣ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред



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

рд╣рдо рдХрдбрд╝реЗ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ


рдЗрди рдмрдЯрдиреЛрдВ рдореЗрдВ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдЗрд░реЗрдбреНрдпреВрдмрд▓ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╡реЗ рдХрдо рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдмрдЯрди рдПрдХ рджреВрд╕рд░реЗ рдкрд░ рд░реЗрдВрдЧреЗрдВрдЧреЗред рдФрд░ рд╣рд╛рдБ, рдЖрдк рдЗрди рдмрдЯрдиреЛрдВ рдХреЛ рдЫрд┐рдкрд╛ рдирд╣реАрдВ рд╕рдХрддреЗред

рдЬрдм рдореИрдВрдиреЗ рд╕реНрдЯреЙрдХ рдХреЛ рд░реЗрдб рдХрд┐рдпрд╛, рддреЛ рдореИрдВ рдКрдкрд░реА рдирд╛рд░рдВрдЧреА рдкреИрдирд▓ рдХреА рдКрдВрдЪрд╛рдИ рдирд╣реАрдВ рдмрдврд╝рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣реИред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЙрд╕ рд╕рдордп рдЗрд╕реЗ рдирд╣реАрдВ рдмрдврд╝рд╛рдпрд╛, рдЕрдиреНрдпрдерд╛ рдЕрдм рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдЕрджреБрдЖ рд╣реЛрддрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдмрдЯрди рдХреЗ рд▓рд┐рдП рдПрдХ рдкрдВрдХреНрддрд┐ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред



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

рдЪрд▓реЛ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:



рдЕрдм рдЧрд░реАрдм рджреГрд╖реНрдЯрд┐ рдХреЗ рдЕрдиреБрдХрд░рдг рдХреЗ рд╕рд╛рде "рдкрд╣рд▓реЗ" рдФрд░ "рдмрд╛рдж" рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:



рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдбрд░реЛ рдорддред рдХрд┐рд╕реА рдЕрдиреНрдп рдмрдЯрди рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ рдХрд┐рд╕реА рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рд╣реИ рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реНрд▓рд╛рдЗрдбрд░ред рдФрд░ рдпрд╣ рдШрд╛рддрдХ рдирд╣реАрдВ рд╣реИ рдпрджрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдХреБрдЫ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИ рдпрд╛ рдпрджрд┐ рд╢реАрд░реНрд╖рдХ рдЕрд▓рдЧ рд╣реИред
рдФрд░ рд╣рдордиреЗ UITabBarController рдХреЛ рдирд╣реАрдВ рдЫреБрдЖ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдмрдбрд╝реЗ рдкрд╛рда рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде, рдпрд╣ рдПрдХ рд▓рдВрдмреЗ рдЯреИрдк рдкрд░ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдЖрдЗрдХрди рдФрд░ рдЯреИрдм рдХрд╛ рд╢реАрд░реНрд╖рдХ рдЙрд╕реА рддрд░рд╣ рджрд┐рдЦрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ iOS рдореЗрдВ рд╡реЙрд▓реНрдпреВрдо рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

рд╣рдо рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ


рдбреЛрдбреЛ рдкрд┐рдЬреНрдЬрд╛ рдЖрдИрдУрдПрд╕ рдПрдкреНрд▓реАрдХреЗрд╢рди рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрд╛рд░реНрдХрд┐рдХ рдпреВрдЖрдИ рдШрдЯрдХ рдХреЛ рдПрдХ рдЕрд▓рдЧ UIViewController рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ UIView ред рдЖрдк рд╣рдорд╛рд░реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ:

рдирд┐рдпрдВрддреНрд░рдХ, рдпрд╣ рдЖрд╕рд╛рди рд▓реЗ рд▓реЛ! рд╣рдо UIView рдореЗрдВ рдХреЛрдб рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ
рдкреНрдпрд╛рдЬ рдирд┐рдпрдВрддреНрд░рдХред рд╣рдо рд╕реНрдХреНрд░реАрди рдХреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рддреЛрдбрд╝рддреЗ рд╣реИрдВ

рдПрдХ рдЕрд▓рдЧ UIViewController рдореЗрдВ рддрд╛рд░реНрдХрд┐рдХ рдпреВрдЖрдИ рдШрдЯрдХреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ UIViewController рд╡рд┐рднрд┐рдиреНрди рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп UIViewController рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рд╣рдо рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдЖрдЬрд╝рдорд╛рдПрдБ, рднрд▓реЗ рд╣реА рдЖрдк рдбрд╛рдпрдирд╛рдорд┐рдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ - рдпрд╣ рд╕реНрдХреНрд░реАрди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ: рдкреНрд░рд╛рдзрд┐рдХрд░рдг, рдЕрдзрд┐рдХрд╛рд░реЛрдВ, рднреВрдорд┐рдХрд╛рдУрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдВред

рддреЛ рдпрд╣рд╛рдБ рд╣реИред рд╣рдо рдРрд╕реЗ рдпреВрдЖрдИ рдШрдЯрдХ рдФрд░ рдЗрд╕рдХреЗ рдореВрд▓ рдХрдВрдЯреЗрдирд░ рдХреЗ рдмреАрдЪ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рдд рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рд╣рдордиреЗ рдЗрд╕реЗ StateViewController рдХрд╣рд╛ рд╣реИред


рдореЗрдиреВ рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рдХ рд░рд╛рдЬреНрдп-рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА collection - рдпрд╛ button рдХреЙрдиреНрдЯреНрд░реЛрд▓рд░ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рддрд╛ рд╣реИред

рдпрд╣ StateViewController рдПрдХ рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕ рдпрд╛ рдЙрд╕ UI рдШрдЯрдХ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, StateViewController рдХреЛ рдЕрдкрдиреЗ рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, StateViewController рдореЗрдиреВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдмрдЯрди рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдореЗрдВ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рдЪрдпрди рдХреЛ рдЯреЙрдЧрд▓ рдХрд░реЗрдЧрд╛ред рдФрд░ "рд╕рд╛рдорд╛рдиреНрдп" рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдФрд░ рджреГрд╖реНрдЯрд┐рдмрд╛рдзрд┐рдд рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЪрдпрдирдХрд░реНрддрд╛ рдХреЛ рд╡рд╣реА рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

  • рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рджрд┐рдЦрд╛рдПрдВред
  • рдЪрдпрдирд┐рдд рд╢реНрд░реЗрдгреА рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВред
  • рдЕрджреНрдпрддрди рд╢реНрд░реЗрдгреА рд╕реВрдЪреАред
  • рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ рдХрд┐ рд╢реНрд░реЗрдгреА "рдмрд╛рд╣рд░ рд╣реЛ рдЧрдИред"

рддрд╛рдЬрд╛ рдЫреЛрдЯреЗ рд▓реЙрдЧ рдХреА рдЗрд╕ рдЕрджреНрднреБрдд рдЧрдВрдз рдХреЛ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ? рдФрд░, рдирд╣реАрдВ, рдпрд╣ рдореЛрдмрд╛рдЗрд▓ рдПрдкреА рдХреА рдПрдХ рдЯреАрдо рдкрд┐рдЬреНрдЬрд╛ рд╣реИред 5 рдорд┐рдирдЯ рдХрд╛ рдмреНрд░реЗрдХред

2 рд╕реНрд▓рд╛рдЗрд╕ рдмрд╛рдж рдореЗрдВ
"... рдареАрдХ рд╣реИ, рд╣рдо рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдмрд╕!"
рд╕рдВрдХреЗрдд: рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдХрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдбрд╛рдпрдирд╛рдорд┐рдХ рдЯрд╛рдЗрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдЬрд╡рд╛рдм рдХреИрд╕реЗ рджреЗрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЦреБрд▓реЗ Xcode рдореЗрдВ, Xcode тЖТ рдУрдкрди рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ тЖТ рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдЕрдВрддрд┐рдо рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ

рдПрдХ рдФрд░ рд╕рдВрдХреЗрдд: рдЯреЗрдХреНрд╕реНрдЯ рд╕реЗрдВрдЯрд░ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдИрдлреЛрди рдкрд░ рдбрд╛рдпрдиреЗрдореЛ рдЯреИрдк рдХрдВрдЯреНрд░реЛрд▓ (рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рдирд╣реАрдВ) рдХреЛ рдХрдВрдЯреНрд░реЛрд▓ рд╕реЗрдВрдЯрд░ рдкрд░ рд▓реЗ рдЬрд╛рдПрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, iPhone рдкрд░, рд╕реЗрдЯрд┐рдВрдЧ тЖТ рдХрдВрдЯреНрд░реЛрд▓ рд╕реЗрдВрдЯрд░ тЖТ рдирд┐рдпрдВрддреНрд░рдг рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рд╕рд╛рдЗрдЬрд╝ рдЬреЛрдбрд╝реЗрдВред

рд╣рдордиреЗ рд╕рд╛рдорд╛рдиреНрдп рд╢реНрд░реЗрдгреА рдХреЗ рдЪрдпрдирдХрд░реНрддрд╛ CategoriesCollectionViewController рдХреЛрдХреНрд▓реЗрдХреНрд╢рдирд┐рдпрди рд╡реНрдпреВрдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╣рд╛, рдФрд░ рдиреЗрддреНрд░рд╣реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП - CategoriesButtonViewController рд╡реНрдпреВрдХрдВрдЯреНрд░реЛрд▓рд░ред рдЙрдирдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ CategoriesPickerProtocol рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдЯреЗрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ CategoriesStateViewController ред

рд╣рдо рдЕрдкрдиреЗ CategoriesStateViewController рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд░рд╛рдЬреНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ:

 private enum State { case collection, button } 

рд╣рдо рдЙрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рдирд┐рдпрдВрддреНрд░рдХ рджрд┐рдЦрд╛рдирд╛ рд╕рд┐рдЦрд╛рддреЗ рд╣реИрдВ:

 private var state: State = .collection { didSet { if state != oldValue { updateViewController(for: state) } } } private func updateViewController(for state: State) { let viewController = self.viewController(for: state) self.updateController(with: viewController) } private func viewController(for state: State) { switch state { case .collection: return CategoriesCollectionViewController.instantiateFromStoryboard() case .button: return CategoriesButtonViewController.instantiateFromStoryboard() } } 

instantiateFromStoryboard() - рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реЗ рд╡реНрдпреВ рдХрдВрдЯреНрд░реЛрд▓рд░ рддрдХ рдХреА рд╡рд┐рдзрд┐, рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рд╕реЗ рдПрдХ рдХрдВрдЯреНрд░реЛрд▓рд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдмрдирд╛рддреА рд╣реИ рдпрджрд┐ рдЙрдирдХрд╛ рд╕рдорд╛рди рдирд╛рдо рд╣реИред рдХреЛрдб рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рд╣реИред

 override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { super.traitCollectionDidChange(previousTraitCollection) self.updateStateToCurrentContentSize() } private func updateStateToCurrentContentSize() { let contentSize = self.traitCollection.preferredContentSizeCategory self.updateState(to: contentSize) } private func updateState(to contentSize: UIContentSizeCategory) { self.state = contentSize.isAccessibilityCategory ? .button : .collection } 

рд╣рдо рдПрдХ рд╕рд╛рде рджреЛ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЬреЛрдбрд╝рдХрд░: рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдФрд░ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП, CategoriesPickerProtocol рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред

 protocol CategoriesPickerProtocol where Self: UIViewController { var datasource: CategoriesDatasource? { get set } var delegate: CategoriesDelegate? { get set } func select(_ category: ProductCategoryModule.ProductCategoryViewModel) func updateCategories() var selectedCategory: ProductCategoryModule.ProductCategoryViewModel? { get } } protocol CategoriesDatasource: class { var categories: [ProductCategoryModule.ProductCategoryViewModel] { get } func index(of category: Product.ProductCategory) -> Int } protocol CategoriesDelegate: class { func productCategoriesView(_ categoriesPicker: CategoriesPickerProtocol, didSelect category: ProductCategoryModule.ProductCategoryViewModel) } 

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджрд┐рдЦрд╛рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдордЭрджрд╛рд░реА рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рд╣рд░ рдкрд╛рдЗрдХрд░ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдКрдкрд░ рдХреА рдУрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред

рдбрд╛рдпрдиреЗрдорд┐рдХ рдЯреИрдкреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рдЬреНрдп рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЙрджрд╛рд╣рд░рдг GitHub рдкрд░ рдореЗрд░реЗ рд░реЗрдкреЛ рдореЗрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ ред

тЖТ рд╡реИрд╕реЗ, рд╣рдо рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

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


All Articles