рд╢реБрдн рджрд┐рди, рд╣рдмреНрд░рдпреНрдпреБрдЬрд╝рд░реАред
рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдореИрдВрдиреЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓рд┐рдЦрд╛, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╕рд┐рд░реНрдл рдПрдХ рдзреБрдВрдзрд▓рд╛ рдорд╛рдорд▓рд╛ рд╣реИред рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ; рдореИрдВрдиреЗ рдХрдИ рдЕрдЬреАрдм рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдореИрдВ рдПрдХ рдпрд╛ рджреЛ рджрд┐рди рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрддрд╛ рддрд▓рд╛рд╢ рд╕рдХрддрд╛ рд╣реВрдВред рдирддреАрдЬрддрди, рд╕рдм рдХреБрдЫ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдкреНрд░рддрд┐рдмрдВрдз рдФрд░ рд╕рд░рд▓ рд╣реЛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, "рдпрд╣ рд╕рдм рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд┐рдореНрдкрд╕рдВрд╕ рдореЗрдВ рдерд╛" - рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди Google рдХреЗ рдкрд╣рд▓реЗ рдкреГрд╖реНрда рдкрд░ рдерд╛ред
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ! рдореИрдВрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбрд┐рдмрдЧ рдХрд┐рдпрд╛, рдЗрд╕реЗ AppStore рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛, рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдбрдмрд▓-рдЪреЗрдХ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ - рдмрдЧреНрд╕ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд┐рдпрд╛ред
рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯрдирд╛ рд╣реИ - рдореИрдВ рдиреАрдЪреЗ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ
рддреЛ, рдореЗрд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд┐рдпрд╛:
рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдореЗрдВ (рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рдмрд╛рдж, рдореИрдВ рдереНрд░реЗрдбреНрд╕ рдереНрд░реЗрдбреНрд╕ рдХрд╣реВрдВрдЧрд╛), рд╡реИрд╢реНрд╡рд┐рдХ UIScrollView рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЪрд┐рддреНрд░, рдкрд╛рда, рдСрдбрд┐рдпреЛ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╣реИрдВред рд╡рд░реНрддрдорд╛рди рдЦреБрд▓реЗ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП, рдкреНрд░рддрд┐рдкрд╛рджрди рдЙрд╕реА рдореБрдЦреНрдп рдзрд╛рд░рд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрдбрд╝реЛрд╕реА рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд┐рдХрдиреА рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрдирд╛рдИ рдЧрдИ рдзрд╛рд░рд╛рдУрдВ рдореЗрдВ, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреА рдЬрд╛рддреА рд╣реИ (рдХрдо-рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╡рд╛рд▓реА рддрд╕реНрд╡реАрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдЦрд┐рдВрдЪ рдЬрд╛рддреА рд╣реИ), рдФрд░ рдкреВрд░реНрдг рд░реЗрдВрдбрд░рд┐рдВрдЧред рд╣рдо рдПрдХ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реБрдП рдХрд╣реЗрдВрдЧреЗ рдПрдХ рд╕реНрдЯреНрд░реАрдо рдирдВрдмрд░ 1, рдПрдХ рдкреВрд░реНрдг рдХреЗ рд╕рд╛рде - рдПрдХ рд╕реНрдЯреНрд░реАрдо рдирдВрдмрд░ 2ред
рдЖрдкрдХреЛ рдкреВрд░реНрд╡-рдкреНрд░рддрд┐рдкрд╛рджрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд▓реНрджреА рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдореЛрдбрд╝ рд╕рдХреЗ рдФрд░ рдХрдо-рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓рд╛ рдкреГрд╖реНрда рджреЗрдЦ рд╕рдХреЗ, рдФрд░ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдмрд╛рд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рди рдХрд░реЗрдВред
рдкреВрд░реНрдг рдкреНрд░рддрд┐рдкрд╛рджрди рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдПрдХ рдкреГрд╖реНрда рдкрдврд╝рддрд╛ рд╣реИ, рдЕрдЧрд▓реЗ рдПрдХ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ - рдФрд░ рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реЛрдб рд╣реИ, рдФрд░ "рдирдпрд╛" рдкрдбрд╝реЛрд╕реА рдХреЛ рдХрддрд╛рд░ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╡реИрд╕реЗ, рджреЛ рдзрд╛рд░рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рдкреГрд╖реНрда рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдзрд╛рд░рд╛ 1 рдФрд░ рдзрд╛рд░рд╛ 2 рдирдВрдмрд░ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ, рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЬрд╛рдВрдЪ рдХреА рдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ / рдкреВрд░реНрдг рдкреНрд░рддрд┐рдкрд╛рджрди рдерд╛ рдпрд╛ рдирд╣реАрдВ, рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпреЛрдЬрдирд╛ рдХреЛ рдЕрдВрдЬрд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛, рдпрд╛ рд╡реЗ рдЪрд▓реЗ рдЧрдПред
рдЗрд╕ рд╕рдм рдХреЗ рд▓рд┐рдП, BOOL isRendering рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рддрд░реАрдХреЛрдВ рдореЗрдВ - (рд╢реВрдиреНрдп) рдкреНрд░реАрд░реЗрдВрдбрд░рдкреЗрдЬ рдФрд░ - (рд╢реВрдиреНрдп) рдлреБрд▓рд░реЗрдВрдбрд░рдкреЗрдЬ, рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рдирд┐рд░реНрдорд╛рдг рдерд╛:
рдЬрдмрдХрд┐ (isRendering) {
}
isRendering = YES;
... // рд╕реАрдзреЗ рдкреНрд░рддрд┐рдкрд╛рджрди
isRendering = NO;
рд╡рд╛рдкрд╕реА;
рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд╛рдо рдЬрдм xcode рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрдЧреНрд░рд╣ / рд░рд┐рд▓реАрдЬ рдмрд┐рд▓реНрдб рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред
рдореБрдЭреЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХрд░рдиреЗ рдореЗрдВ рдкреВрд░рд╛ рдПрдХ рджрд┐рди рд▓рдЧрд╛, рд▓реЗрдХрд┐рди рдЙрд╕рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдПрдХ рднреА рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдЗрддрдирд╛ рдзреНрдпрд╛рди!
рдпрджрд┐ рдЖрдк рдкреНрд░рддреАрдХреНрд╖рд╛ рд▓реВрдк рдХреЛ рдЗрд╕ рддрд░рд╣ рдмрджрд▓рддреЗ рд╣реИрдВ:
рдЬрдмрдХрд┐ (isRendering) {
[NSThread sleepForTimeInterval: 0.01];
}
рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЬрдмрдХрд┐ рд▓реВрдк рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдмрд╛рдж xcode рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╕рдордп, рдРрд╕реА рдХреЛрдИ рджреЗрд░реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЬрдмрдХрд┐ рд▓реВрдк рдХрдИ рдмрд╛рд░ рдЪрд▓рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдорд╛рд░рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдпрд╛ рддреЛ рдирд┐рд▓рдВрдмрди рдореЗрдВ рдирд┐рд▓рдВрдмрд┐рдд рд╣реИ рдФрд░ рдЕрдм рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпреЗ рдмрд╛рддреЗрдВ рд╣реИрдВред
рд╢рд╛рдпрдж, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рд╕рдХреНрд╖рдо рдзреНрд╡рдЬ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЛ рдХреБрдЯрд┐рд▓рддрд╛ рд╕реЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛, рдФрд░ рдпрд╣ рдЗрд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рдерд╛ред рдореЗрд░реА рдЖрдБрдЦреЗрдВ рдЦреЛрд▓реЛ :) рд╢рд╛рдпрдж рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рд╕рд░рд▓ рд╣реИред
NSRunLoop рдФрд░ [NSDate distantFuture] рдХреЗ рд╕рд╛рде PS рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрджреЗрд╢реЛрдВ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП [NSDate dateWithTimeIntervalSinceNow: 0.01] - рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдореЗрд░реЗ рд╕рдорд╛рдзрд╛рди рд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рдмреЛрдЭрд┐рд▓ред