рдЖрдИрдУрдПрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ, рдпрд╣ рдХрд┐рд╕реА рднреА рд░реЗрдЯрд┐рдВрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмреАрд╕ рд╢рд╛рдирджрд╛рд░ / рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдРрдкреНрдкрд▓ рдЧреИрдЬреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрддреЗ рд╣реИрдВред
рд╕рднреА рдПрдирд┐рдореЗрд╢рди рдЙрдирдХреЗ рдкреВрд░реНрдг рдЖрдХрд╛рд░ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рд╣реИрдВред 
рдЕрдиреБрд╡рд╛рдж EDISON рдХреЗ рд╕рдорд░реНрдерди рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╣рдо 1C-Bitrix рдкрд░ рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдФрд░ рд░рдЦрд░рдЦрд╛рд╡ рдореЗрдВ рд▓рдЧреЗ рд╣реБрдП рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди Android рдФрд░ iOS рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рднреА рд╣реИрдВ ред
рднрд╛рдЧ Iред 5 IOS рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ( рдореВрд▓ )

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

ImageViewer.swift рдПрдХ рдЖрд╕рд╛рди рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЫрд╡рд┐ рджреАрд░реНрдШрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
"рд░рд╛рдд" рдореЛрдб, рд▓реИрдВрдбрд╕реНрдХреЗрдк рдУрд░рд┐рдПрдВрдЯреЗрд╢рди, рдбреНрд░реИрдЧ рдПрдВрдб рдбреНрд░реЙрдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рд╕рд╛рдЗрдбрдореЗрдиреВ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдЗрдб рдореЗрдиреВ рд╣реИред рдПрдХ рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдПрдиреАрдореЗрд╢рди рдХреА рдЖрда рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╢реИрд▓рд┐рдпрд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп, рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рд╕рд╛рдЗрдб рдореЗрдиреВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рд╛рдЗрдк рдЬреЗрд╕реНрдЪрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред

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

рднрд╛рдЧ II рдЖрдкрдХреЗ рдЕрдЧрд▓реЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП 5 рдЖрдИрдУрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА ( рдореВрд▓ )
рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП ,
PhoneNumberKit , рдПрдХ рд╣рд▓реНрдХреЗ iOS рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ
рд╕реНрд╡рд┐рдлреНрдЯ 5.0 рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдереА, рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рд╕реНрд╡рд░реВрдкрдг рдФрд░ рдЕрдВрддрд░рд░рд╛рд╖реНрдЯреНрд░реАрдп рдлреЛрди рдирдВрдмрд░ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдПред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ - рдХреЗрд╡рд▓ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рдРрд╕реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:

import PhoneNumberKit let phoneNumberKit = PhoneNumberKit() do { let phoneNumber = try phoneNumberKit.parse("+39 3 12 542644") let phoneNumberCustomDefaultRegion = try phoneNumberKit.parse("+39 23 2245 23442", withRegion: "IT", ignoreType: true) } catch { print("Generic parser error") }
рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ рд╕реБрдВрджрд░
PhoneNumberTextField
рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЛрдВ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
withFlag
рд╡рд░реНрддрдорд╛рди рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рджреЗрд╢ рдХрд╛ рдЭрдВрдбрд╛ рджрд┐рдЦрд╛рдПрдЧрд╛ред рдзреНрд╡рдЬ рдкрд╛рда рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛редwithExamplePlaceholder
рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рд╕рдВрдЦреНрдпрд╛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП currentRegion
attributePlace
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
DateScrollPicker рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рди рддрд┐рдерд┐ рдкрд┐рдХрд░ рджреГрд╢реНрдп рд╣реИ рдЬреЛ
рд╕реНрд╡рд┐рдлреНрдЯ 5 рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕ рдХреИрд▓реЗрдВрдбрд░ рдореЗрдВ рдЕрдВрддрд╣реАрди рддрд╛рд░реАрдЦ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдФрд░ рдПрдХ рдПрдирд┐рдореЗрдЯреЗрдб рдЪрдпрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдлрд╝реЙрдиреНрдЯ рдФрд░ рд░рдВрдЧ рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рджрд░реНрд╢рд┐рдд рджрд┐рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдирд╛, рддрд┐рдерд┐ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛, рдлрд╝реЙрдиреНрдЯ / рд░рдВрдЧ рдмрджрд▓рдирд╛ рдФрд░ рдХрдИ рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рдкреЛрд╕реНрдЯрд▓рдХреЛрдбрд╡реЗрд▓рд┐рдбреЗрдЯрд░ 200 рд╕реЗ рдЕрдзрд┐рдХ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреЛрд╕реНрдЯрд▓ рдХреЛрдб рдХрд╛ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рд╣реИред
рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ:

import Foundation import PostalCodeValidator if let validator = PostalCodeValidator(locale: .current) {
рддрд░рд▓-рд╕реНрд╡рд╛рдЗрдк рдПрдХ рдЖрд╕рд╛рди-рд╕реЗ-рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛
swipe-container
рдирд┐рдпрдВрддреНрд░рдг рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдкрд╣рд▓реЗ рд░рди рдХреЗ рд▓рд┐рдП рдпрд╛ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдПред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдпрд╛ рдХреЛрдб рд╕реЗ
LiquidSwipeContainerController
рдХреНрд▓рд╛рд╕ рдХреЛ
LiquidSwipeContainerController
рдФрд░ рдлрд┐рд░
LiquidSwipeContainerDataSource
рдХреНрд▓рд╛рд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

рднрд╛рдЧ III 5 рдЖрдИрдУрдПрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди ( рдореВрд▓ ) рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

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

BouncyLayout рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ рд╣рд░
UICollectionView
рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЙрдЫрд╛рд▓ рджреЗрддрд╛ рд╣реИ! рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдЖрдкрдХреЛ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА
BouncyLayout
,
BouncyLayout
рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ
UICollectionView
рдЬреЛрдбрд╝реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
import BouncyLayout let collectionLayout = BouncyLayout() UICollectionView(frame: .zero, collectionViewLayout: collectionLayout)
рдЧреНрд▓рд╛рдЗрдбрд┐рдВрдЧ-рд╕рдВрдЧреНрд░рд╣ UICollectionView
рдореЗрдВ рд▓рд╛рдЧреВ рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд╛ рдПрдХ рд╕реБрдВрджрд░, рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рджреГрд╢реНрдп рд╣реИред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╡реНрдпреВ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ,
Storyboard
рдПрдХ
UIView
рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдХреНрд▓рд╛рд╕ рдХреЛ
GlidingCollection
рдмрджрд▓
GlidingCollection
, рдлрд┐рд░
@IBOutlet
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдХреЛрдб рд╕реЗ рд╡реНрдпреВ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рд╡реНрдпреВ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ
GlidingCollectionDatasource
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдФрд░
GlidingCollectionDatasource
рд╕реЗ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпреВ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЬреАрдердм рдкрд░ "
рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ " рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВред

CarLensCollectionViewLayout рдПрдХ рдЖрд╕рд╛рди-рд╕реЗ-рдЙрдкрдпреЛрдЧ рд╕рдВрдЧреНрд░рд╣ рджреГрд╢реНрдп рд▓реЗрдЖрдЙрдЯ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХреЛрдб рдХреЗ рдХреБрдЫ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде
UICollectionView
рдореЗрдВ рдПрдХ рдорд╛рдирдЪрд┐рддреНрд░ рдПрдиреАрдореЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ!
рдЖрдк
CarLensCollectionViewLayoutOptions
рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдмрджрд▓рдХрд░ рд▓реЗрдЖрдЙрдЯ рдХреЛ рднреА рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рдиреНрдпреВрдирддрдо рджреВрд░реА - рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдиреНрдпреВрдирддрдо рджреВрд░реАред
DecelerationRate
- рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдзреАрдорд╛ред
ShouldShowScrollIndicator
- рдХреНрдпрд╛ рд╕реНрдХреНрд░реЙрд▓ рд╕рдВрдХреЗрддрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
Item Size
- рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдЖрдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред


рдФрд░ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рд╣реНрдпреВ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд░рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рд░рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд░рдВрдЧ рдЧреБрдгреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ (рдЬреИрд╕реЗ
.isDarkColor
рдпрд╛
.isBlackOrWhite
), рдЕрд▓реНрдлрд╛ рдЪреИрдирд▓ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдмрдирд╛рдПрдВ, рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рдиреАрд▓рд╛ / рд╣рд░рд╛ / рд▓рд╛рд▓ рдШрдЯрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ!
рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдг
рд╕рд░рдХрд╛рд░реА рд░реЗрдкреЛ рдкрд░ рд╣реИрдВ ред

рднрд╛рдЧ IV 5 рдЖрдИрдУрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреЛ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдп ( рдореВрд▓ ) рдмрдирд╛ рджреЗрдЧреА

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ,
TKSwitcherCollection , рдПрдирд┐рдореЗрдЯреЗрдб рдирд┐рдпрдВрддреНрд░рдг рд╕реНрд╡рд┐рдЪ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ред
рдЪрд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрд╡рд┐рдЪ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:
TKSimpleSwitch
тЖТ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕реНрд╡рд┐рдЪред
TKExchangeSwitch
тЖТ рдЬрдм рдЯрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдП рддреЛ рдЖрдХрд╛рд░ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред
TKSmileSwitch
тЖТ рдИрдореЛ рд╕реНрд╡рд┐рдЪ (рджреБрдЦрдж / рдордЬрд╝реЗрджрд╛рд░)ред
TKLiquidSwitch
тЖТ рджреНрд░рд╡-рд╢реИрд▓реА рдПрдиреАрдореЗрд╢рди рдХреЗ рд╕рд╛рде рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВред
CocoaTextField рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреА рд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдФрд░ рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдХреЗ рд╕рд╛рде рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд╕рдХреНрд░рд┐рдп / рдирд┐рд╖реНрдХреНрд░рд┐рдп рд░рдВрдЧ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╛ рдлрд╝реЛрдХрд╕ рдореЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛ рд░рдВрдЧ, рд╕реАрдорд╛рдУрдВ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд░рдВрдЧ, рдЖрджрд┐ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг:

let v = CocoaTextField() v.inactiveHintColor = UIColor(red: 145/255, green: 222/255, blue: 233/255, alpha: 1) v.activeHintColor = UIColor(red: 777/255, green: 122/255, blue: 187/255, alpha: 1) v.focusedBackgroundColor = UIColor(red: 200/255, green: 230/255, blue: 250/255, alpha: 1) v.defaultBackgroundColor = UIColor(red: 250/255, green: 250/255, blue: 250/255, alpha: 1) v.borderColor = UIColor(red: 239/255, green: 239/255, blue: 239/255, alpha: 1) v.errorColor = UIColor(red: 231/255, green: 76/255, blue: 60/255, alpha: 0.7) v.borderWidth = 3 v.cornerRadius = 14
рд╡рд┐рд╕реНрддрд╛рд░ рд╕рдВрдХрд▓рди рдПрдХ рд╕реНрд╡рд┐рдлреНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ рдПрдХ рдпреВрдЖрдИ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░рддрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
UICollectionViewCell
рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдПрдХ
UICollectionViewCell
рдмрдирд╛рдПрдВ рдЬреЛ
UICollectionViewCell
рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗред рдЙрд╕рдХреЗ рдмрд╛рдж,
FrontView
рдФрд░
BackView
ред рдлрд┐рд░ рдЖрдк
ExpandingViewController
рд╕реЗ
UICollectionViewDataSource
UIViewController
рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╕реЗрд▓ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдПрдХ
UICollectionViewDataSource
рдЬреЛрдбрд╝реЗрдВред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рднрдВрдбрд╛рд░ рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА
рд╣реИ ред


рдЖрдЗрдЯрдо рдХреЗ рдмреАрдЪ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдкрд░
ICollectionView
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдирд┐рдореЗрдЯреЗрдб рд╕рдВрдХреНрд░рдордг рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
AnimatedCollectionViewLayout UICollectionViewLayout
рдХрд╛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛
UICollectionView
рдХрд╕реНрдЯрдо рдмрджрд▓рд╛рд╡ рдФрд░ рдПрдирд┐рдореЗрд╢рди рдЬреЛрдбрд╝рддрд╛ рд╣реИ!
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдлрд┐рд░ рдПрдХ
AnimatedCollectionViewLayout
рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ, рдЗрд╕рдореЗрдВ рдПрдХ
animator
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ
UICollectionView
рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред

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


рдпреЗ рднреА рдкрдврд╝реЗрдВ
EDISON рдмреНрд▓реЙрдЧ:
15 рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдФрд░ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рдЖрдЗрдХрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА