рд╕реНрдХреНрд░реЙрд▓ рджреГрд╢реНрдп рдХреЗ рдЕрдВрджрд░ рд╕реНрдХреНрд░реЙрд▓ рджреГрд╢реНрдп

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ OLEContainerScrollView рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ , рдЬреЛ UIScrollView рдХрд╛ рд╡рдВрд╢рдЬ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдХрдИ рд╕реНрдХреНрд░реЙрд▓ рджреГрд╢реНрдп, рддрд╛рд▓рд┐рдХрд╛рдУрдВ ( UITableView ) рдпрд╛ рд╕рдВрдЧреНрд░рд╣ ( UICollectionView ) рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред



рд╕рдВрднрд╡ рдЕрдиреБрдкреНрд░рдпреЛрдЧ



рдЖрдк рдирд┐рдореНрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OLEContainerScrollView рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЛрд╢рд┐рдХрд╛рдУрдВ



рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦреЗрдВ, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЯреЗрдмрд▓ рдпрд╛ рд╕рдВрдЧреНрд░рд╣ рдЖрдо рддреМрд░ рдкрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред UITableView рдФрд░ UICollectionView рджреЛрдиреЛрдВ рд╡рд░реНрдЧ, UIScrollView рдХреЗ рд╡рдВрд╢рдЬ рд╣реИрдВ рдФрд░ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЯреЗрдмрд▓ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рдЕрдкрдиреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ ред рдЬрдм рджреГрд╢реНрдп рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реЗрд▓ рд╕реНрдХреНрд░реАрди рд╕реЗ рдкрд░реЗ рдлреИрд▓реА рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рд╕реЗрд▓ рджреГрд╢реНрдп рдкрджрд╛рдиреБрдХреНрд░рдо рд╕реЗ рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИ (рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╕рдВрджреЗрд╢ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ FromSuperview рдЗрд╕реЗ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ ) рдФрд░ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрддрд╛рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдПрдХ рдирдИ рд╕реЗрд▓ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рддрд╛рд▓рд┐рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕реВрдЪреА рд╕реЗ рдПрдХ рдЦрд╛рд▓реА рд╕реЗрд▓ рдХреЛ рдмреБрд▓рд╛рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рджреГрд╢реНрдп рдкрджрд╛рдиреБрдХреНрд░рдо рдкрд░ рдлрд┐рд░ рд╕реЗ рд░рдЦрддреА рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдорд╣рддреНрд╡рдкреВрд░реНрдг рдореЗрдореЛрд░реА рдЦрдкрдд рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдирдП рдкреНрд░рдХрд╛рд░ рдХреА рдореЗрдореЛрд░реА рдмрдирд╛рдиреЗ рдФрд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ (рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ) рдХреЗ рдорд╣рдВрдЧреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред







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


рдХрдВрдЯреЗрдирд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдг



рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдХрдИ рд╕реНрдХреНрд░реЙрд▓ рджреГрд╢реНрдп рд░рдЦрдиреЗ, рдПрдХ рд╕реНрдХреНрд░реЙрд▓ рджреГрд╢реНрдп рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдПрдХ рдХрд╛рдлреА рд╕рд░рд▓ рдХрд╛рд░реНрдп рд╣реИ:





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



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







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


OLEContainerScrollView



рдЕрдм рдореИрдВ рд╕реНрдХреНрд░реЙрд▓ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХрдВрдЯреЗрдирд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред OLEContainerScrollView , UIScrollView рдХрд╛ рд╡рдВрд╢рдЬ рд╣реИ, рдЬреЛ рдбреЗрдХ рдпрд╛ рд╕реНрдЯреИрдХ (рдУрдПрд╕ рдПрдХреНрд╕ рдореЗрдВ NSStackView рдХреЗ рд╕рдорд╛рди) рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХрдВрдЯреЗрдирд░ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рджреГрд╢реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рди рдХреЗрд╡рд▓ рд╕реНрдХреНрд░реЙрд▓ рджреГрд╢реНрдпреЛрдВ рдХреЗ рд╕рд╛рде, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕реНрдХреНрд░реЙрд▓ рджреГрд╢реНрдп рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред



рджреГрд╢реНрдп рдЬреЛрдбрд╝рдирд╛



рдХрдВрдЯреЗрдирд░ рдореЗрдВ рджреГрд╢реНрдп рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ addSubviewToContainer: рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдореМрдЬреВрджрд╛ addSubview рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХрдВрдЯреЗрдирд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рддрд░реАрдХреЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ : / removeFromSuperview рдЬреЛрдбрд╝реА , рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдирд┐рдЬреА рд╕рд╛рдордЧреНрд░реА рджреГрд╢реНрдп рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рд╕реАрдзреЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдирд╣реАрдВред рдЗрд╕ рддрдХрдиреАрдХ рдиреЗ рд╣рдореЗрдВ рд╕реНрд╡рдпрдВ UIScrollView рдХреА рдирд┐рдЬреА рдЙрдк-рдкреНрд░рдЬрд╛рддрд┐ рд╕реЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдЬреЛ рд╕реНрдХреНрд░реЙрд▓ рд╕рдВрдХреЗрддрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВ, рдЬрдм рдмрд╛рдж рдореЗрдВ рд╣рдо рдиреЗрд╕реНрдЯреЗрдб рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЙрд░реНрдЯ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЙрдирдХреЗ рдЖрдХрд╛рд░ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВрдЧреЗред



рдЬреИрд╕реЗ рд╣реА рдХрдВрдЯреЗрдирд░ рдореЗрдВ рджреГрд╢реНрдп рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрддрд╛ рд╣реИ:





рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╕рдордп рд╕рдВрд░реЗрдЦрдг



рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди, рдХрдВрдЯреЗрдирд░ рд▓рдЧрд╛рддрд╛рд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдлреНрд░реЗрдо рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рддрд╛ рд╣реИ:





рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╕рд░рд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдЕрдм рд╣рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕рднреА рд╕реНрдХреНрд░реЙрд▓ рджреГрд╢реНрдпреЛрдВ рдХреЗ рдлреНрд░реЗрдо рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдиреНрдпреВрдирддрдо рдЖрдХрд╛рд░ рдорд┐рд▓ рд╕рдХреЗ рдЬреЛ рдХрдВрдЯреЗрдирд░ рдХреЗ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдХреЛ рднрд░ рджреЗрдЧрд╛ ( рд╕реАрдорд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ ):





рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╡реАрдбрд┐рдпреЛ рдХреЛ рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдкрд╣рд▓рд╛ рдЯреЗрдмрд▓ рдкреВрд░реЗ рдХрдВрдЯреЗрдирд░ рджреГрд╢реНрдпрддрд╛ (рдПрдХ рдХрд╛рд▓реЗ рд╕реНрдЯреНрд░реЛрдХ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд) рдХреЛ рднрд░рддрд╛ рд╣реИ - рдЯреЗрдмрд▓ рдлреНрд░реЗрдо (рд╣рд▓реНрдХрд╛ рдиреАрд▓рд╛ рдЖрдпрдд) рдХрдВрдЯреЗрдирд░ рдХреА рд╕реАрдорд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рджреВрд╕рд░реА рддрд╛рд▓рд┐рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ - рдЗрд╕рдХреЗ рдлреНрд░реЗрдо рдХреА рдКрдВрдЪрд╛рдИ 0 рд╣реИ, рддрд╛рд▓рд┐рдХрд╛ рдЕрджреГрд╢реНрдп рд╣реИред рдирддреАрдЬрддрди, рдЗрд╕рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рдкреАрд▓рд╛ рдмрд┐рдВрджреАрджрд╛рд░ рд░реЗрдЦрд╛)ред



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





OLEContainerScrollView рдХреЗ рдХрд╛рдо рдХрд╛ рдкреНрд░рджрд░реНрд╢рди ред рд╡реАрдбрд┐рдпреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ (H.264 рдкреНрд░рд╛рд░реВрдк рдореЗрдВ) ред


рдХреЛрдб



OLEContainerScrollView рд╡рд░реНрдЧ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдХреЛрдб
@interface OLEContainerScrollView : UIScrollView - (void)addSubviewToContainer:(UIView *)subview; - (void)removeSubviewFromContainer:(UIView *)subview; @end
      
      







рдФрд░ рдпрд╣рд╛рдВ рд▓реЗрдЖрдЙрдЯрд╕реН рдпреВ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рд╡рд┐рдзрд┐ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рдЬреЛ рд╕рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

 @implementation OLEContainerScrollView ... - (void)layoutSubviews { [super layoutSubviews]; // Translate the container view's content offset to contentView bounds. // This keeps the contentview always centered on the visible portion of the container view's // full content size, and avoids the need to make the contentView large enough to fit the // container view's full content size. self.contentView.frame = self.bounds; self.contentView.bounds = (CGRect){ self.contentOffset, self.contentView.bounds.size }; // The logical vertical offset where the current subview (while iterating over all subviews) // must be positioned. Subviews are positioned below each other, in the order they were added // to the container. For scroll views, we reserve their entire contentSize.height as vertical // space. For non-scroll views, we reserve their current frame.size.height as vertical space. CGFloat yOffsetOfCurrentSubview = 0.0; for (UIView *subview in self.contentView.subviews) { if ([subview isKindOfClass:[UIScrollView class]]) { UIScrollView *scrollView = (UIScrollView *)subview; CGRect frame = scrollView.frame; CGPoint contentOffset = scrollView.contentOffset; // Translate the logical offset into the sub-scrollview's real content offset and frame size. // Methodology: // (1) As long as the sub-scrollview has not yet reached the top of the screen, set its scroll position // to 0.0 and position it just like a normal view. Its content scrolls naturally as the container // scroll view scrolls. if (self.contentOffset.y < yOffsetOfCurrentSubview) { contentOffset.y = 0.0; frame.origin.y = yOffsetOfCurrentSubview; } // (2) If the user has scrolled far enough down so that the sub-scrollview reaches the top of the // screen, position its frame at 0.0 and start adjusting the sub-scrollview's content offset to // scroll its content. else { contentOffset.y = self.contentOffset.y - yOffsetOfCurrentSubview; frame.origin.y = self.contentOffset.y; } // (3) The sub-scrollview's frame should never extend beyond the bottom of the screen, even if its // content height is potentially much greater. When the user has scrolled so far that the remaining // content height is smaller than the height of the screen, adjust the frame height accordingly. CGFloat remainingBoundsHeight = fmax(CGRectGetMaxY(self.bounds) - CGRectGetMinY(frame), 0.0); CGFloat remainingContentHeight = fmax(scrollView.contentSize.height - contentOffset.y, 0.0); frame.size.height = fmin(remainingBoundsHeight, remainingContentHeight); frame.size.width = self.contentView.bounds.size.width; scrollView.frame = frame; scrollView.contentOffset = contentOffset; yOffsetOfCurrentSubview += scrollView.contentSize.height; } else { // Normal views are simply positioned at the current offset CGRect frame = subview.frame; frame.origin.y = yOffsetOfCurrentSubview; frame.size.width = self.contentView.bounds.size.width; subview.frame = frame; yOffsetOfCurrentSubview += frame.size.height; } } self.contentSize = CGSizeMake(self.bounds.size.width, fmax(yOffsetOfCurrentSubview, self.bounds.size.height)); } @end
      
      







рдмрд╛рдХреА рдХреЛрдб рдХрд╛рдлреА рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рд╣реИ, рдЖрдк рдЧрд┐рдЯрд╣рдм рдкрд░ рдЗрд╕рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред



рдСрдЯреЛ рд▓реЗрдЖрдЙрдЯ



рдСрдЯреЛ рд▓реЗрдЖрдЙрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж: OLEContainerScrollView рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдСрдЯреЛ рд▓реЗрдЖрдЙрдЯ рд╕реНрдкреЗрд╕рд░реНрд╕ ( UIScrollView рдФрд░ рдСрдЯреЛ рд▓реЗрдЖрдЙрдЯ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рджреЛрд╕реНрдд рдирд╣реАрдВ рд╣реИрдВ , рд╡реИрд╕реЗ рднреА ) рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╕реНрд╡рдпрдВ рдХреЗ рд▓реЗрдЖрдЙрдЯ рдХреЗ рд▓рд┐рдП рдСрдЯреЛ рд▓реЗрдЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдерд╛, рдЖрдк рдореИрдиреБрдЕрд▓ рд▓реЗрдЖрдЙрдЯ рдФрд░ рдСрдЯреЛ рд▓реЗрдЖрдЙрдЯ рдХреЛ рдХрд╛рдлреА рдЖрд╕рд╛рдиреА рд╕реЗ рдорд┐рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред



рдЕрд░реЗ, рдкреЙрдбрд╕реЗрдХ рдХрд╣рд╛рдБ рд╣реИ?



рдореИрдВрдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ OLEContainerScrollView рд╕реЗ рдХреЛрдХреЛрдкреЛрдб (рдЕрднреА рддрдХ) рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрдкрдиреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рд▓рд┐рдЦрд╛ рд╣реИ, рдФрд░ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рдХреА рдкрд░реНрдпрд╛рдкреНрдд рдХреНрд╖рдорддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЕрднреА рддрдХ рдпрд╣ рдирд╣реАрдВ рд╣реИред рд╕реАрдорд╛рдПрдБ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:





рдпрджрд┐ рдЖрдк рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЖрдкрдХреЗ рд╕реБрдзрд╛рд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рднреА рдЦреБрд╢реА рд╣реЛрдЧреА ( рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЦреАрдВрдЪ рдХрд░ )ред рдФрд░ рдореБрдЭреЗ рд▓рд┐рдЦреЛ рдЕрдЧрд░ рдЖрдк рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рдХреЛрдХреЛрдЖрдкреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред



рдирд┐рд╖реНрдХрд░реНрд╖



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



OLEContainerScrollView рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдШрдЯрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреА рдорджрдж рд╕реЗ рдРрд╕рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рдШрдЯрдХ рдХреЛ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдореБрдЭреЗ UIScrollView рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ UIKit рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рд╕рдордЭ рдХреЛ рдЧрд╣рд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реАред



рдкрд╛рдж рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ:



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




рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ
рдЧрд╣рд░реА рд╕рдордЭ рдХреЗ рд▓рд┐рдП UIScrollView рдХреЗ рдЕрдВрдбрд░рд╕реНрдЯреИрдВрдбрд┐рдВрдЧ рдЖрд░реНрдЯрд┐рдХрд▓ рдХреЛ рдкрдврд╝рдирд╛ рднреА рдЙрдЪрд┐рдд рд╣реИред




All Articles