рдЕрднрд┐рд╡рд╛рджрди, рд╣рдмреНрд░!
рдпрд╣ рд╕рдм рдПрдХ UITableViewCell рдХреЗ рдЕрдВрджрд░ рд╕реНрд╡рд░реВрдкрд┐рдд рдкрд╛рда рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖ, рдФрд░ рдХрдбрд╝рд╛рдИ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рд╛рд░реВрдк рдХреЗ рдирд╣реАрдВ (рдлрд┐рд░ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдлрд╝реЙрдиреНрдЯ рдХреЗ рд╕рд╛рде рдпреВрдЖрдИрдмреЗрд▓ рдХреЗ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛) рд▓реЗрдХрд┐рди рдПрдХ рдордирдорд╛рдирд╛ред рд╣рд╛рдВ, рддрд╛рдХрд┐ рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдХреЛ рд╕рд░рд▓ HTML рдЯреИрдЧ рдХреЗ рд╕рд╛рде рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- CoreText рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╕реНрдЯрдо рдШрдЯрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ (рдпрджрд┐ рдЖрдкрдХреЛ iOS3.x рд╕рдВрдЧрддрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ)
- CoreGraphics рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╕реНрдЯрдо рдШрдЯрдХ рд▓рд╛рдЧреВ рдХрд░реЗрдВ (рдмрд╣реБрдд рд╣реА рдХрд╛рдо)
- рд╕рдмрдмрд┐рд▓ рдХреЗ рд░реВрдк рдореЗрдВ UILabels рдХреА рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╕реНрдЯрдо рдШрдЯрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ (рд╕реНрд╡рдЪреНрдЫрддрд╛ рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдХрд╛рд░рдг рдХрд╛рдлреА рдореИрд▓рд╛)
- рд▓реЛрдб HTMLString рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде UIWebView
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рд▓реЗрдЦ рдХреЗ рд╢реАрд░реНрд╖рдХ рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рд╣реЛрдЧрд╛, рдореИрдВ рдЕрдВрддрд┐рдо рд╡рд┐рдзрд┐ рдкрд░ рдЖ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдкрдореЗрдВ рд╕реЗ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдЖрдЬрдорд╛рдпрд╛ рд╣реИ, рд╡реЗ рдмрд╣реБрдд рдЕрдкреНрд░рд┐рдп рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдХреИрд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдКрдВрдЧрд╛ рдпрд╣ рдореИрдВ рдХрдЯ рдХреЗ рдиреАрдЪреЗ рдмрддрд╛рдКрдВрдЧрд╛ред
UITableViewCell рдХреЗ рдЕрдВрджрд░ UIWebView
рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рд╕рд╛ рдХреНрдпрд╛ рд╣реИ - UIWebView рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рд╣рдо UIWebView рдХреЛ UITableViewCell, рдФрд░ cellForRowAtIndexPath рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ: рд╣рдо рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрд╡рдпрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓реЛрдбрд┐рдВрдЧ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд╣реЛ рдЬрд╛рдПрдЧреА, рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рд╕реНрдкрд░реНрд╢ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдмрд╛рджред рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрдЦрдж рдирд╣реАрдВ рд╣реЛрдЧрд╛: рд╕реНрдХреНрд░реЙрд▓ рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕ рд╕реАрдорд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ RunLoops рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд░рдирд▓реВрдк рдПрдХ рдереНрд░реЗрдб рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдЙрд╕реА рдереНрд░реЗрдб рдореЗрдВ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕рд▓реА рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ RunLoopMode рдХреЗ рд╕рд╛рде рдХреА рдЬрд╛рддреА рд╣реИ - рдЬреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ рдЙрдЪреНрдЪрддрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд╕рднреА рдХреЙрд▓ рд╡рд░реНрддрдорд╛рди рд▓реВрдк рд╕реЗ рдЪреБрдиреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЕрд╡рд░реЛрд╣реА рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рдиреЗрд╕реНрдЯреЗрдб рд░рдирд▓реВрдк рдЪрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред
рдЬрдм рд╣рдо loadHTMLSTring рдХрд╣рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ: UIWebView рдкрд░? рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, performSelector рдЧреИрд░-рдкреНрд░рд╛рдердорд┐рдХрддрд╛ RunLoopMode рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рд╕рд╣реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ UIWebView рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рд▓реЛрдб рдХрд░рдирд╛ рдХреЛрдИ рдЖрд╕рд╛рди рдХрд╛рдо рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдХреНрд░реЙрд▓ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдпрд╣ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЛ рд╕реНрд╡рдпрдВ рдзреАрдорд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╕рд╛рдордЧреНрд░реА рдХрд╛рдлреА рд╣рд▓реНрдХреА рд╣реИ (рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╕рд░рд▓рддрдо html, рддреЛ рдЖрдЗрдП рдмрддрд╛рддреЗ рд╣реИрдВ) - рдбрд╛рдЙрдирд▓реЛрдб рдХрд╛рдлреА рддреЗрдЬреА рд╕реЗ рд╣реЛрдЧрд╛ред
LoadHTMLString рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕рднреА рдЯрдЪ рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕ рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓реЗ RunLoopMode - NSDefaultRunLoopMode рдХреЗ рд╕рд╛рде рдиреЗрд╕реНрдЯреЗрдб рд░рди рд▓реВрдк рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
CFRunLoopRunInMode ( ( CFStringRef ) NSDefaultRunLoopMode, 1 , NO ) ;
рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ WebView рдЕрднреА рднреА рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕ RunLoop рдХреЛ рд░реЛрдХ рджреЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдпрдерд╛ UI рдмрд╕ рд╣реИрдВрдЧ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
CFRunLoopRef runLoop = [ [ NSRunLoop currentRunLoop ] getCFRunLoop ] ;
CFRunLoopStop ( runLoop ) ;
UISynchedWebView
рдиреЗрд╕реНрдЯреЗрдб рд░рдирд▓реВрдк рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд╡реЗрдмрд╡реНрдпреВ рдореЗрдВ рд╣реА рд░реЛрдХ рджреЗрдиреЗ рд╕реЗ рд╕рдм рдХреБрдЫ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдЪрд▓реЛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ UIWebView рдмрдирд╛рддреЗ рд╣реИрдВ, рдЗрд╕реЗ UISynchedWebView рдирд╛рдо рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдкреБрдирдГ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП HTMLString рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдзрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдиреЗрд╕реНрдЯреЗрдб рд░рдирд▓реВрдк рдЪрд▓рд╛рдПред рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрдм рд░реЛрдХрд╛ рдЬрд╛рдП? рд╕рд╛рдордЧреНрд░реА рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЖрдкрдХреЛ рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдирдП WebView рдХреЛ рдЕрдкрдирд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдмрд╛рд╣рд░реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдмрд╛рд╣рд░реА рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ рд╕рджрд╕реНрдп рдЪрд░ рдмрдирд╛рдПрдВрдЧреЗ, рдЗрд╕рдХреЗ рдЙрдкрдирд┐рд╡реЗрд╢рдХреЛрдВ рдФрд░ рдЧреЗрдЯрд░реНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдФрд░ рд╣рдорд╛рд░реЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рдХреЛрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдмрд╛рд╣рд░реА рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
@interface UISynchedWebView : UIWebView <UIWebViewDelegate>
{
рдЖрдИрдбреА рдПрдХ рдФрд░ рдбреЗрд▓реАрдЧреЗрдЯ;
}
@end
- ( рд╢реВрдиреНрдп ) webView : ( UIWebView * ) webView didFailLoadWithError : ( NSError * ) рддреНрд░реБрдЯрд┐
{
[ рдЖрддреНрдо рдкреНрд░рджрд░реНрд╢рдирдХрд░реНрддрд╛ : @selector ( stopRunLoop ) withObject : nil afterelelay : .01 ] ;
рдЕрдЧрд░ ( [рдПрдХ рдФрд░ рдбреЗрд▓реАрдЧреЗрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддрд╛ рд╣реИ рддреЛрд╣рдкрд░ : @selector ( webView : didFailLoadWithError :) ] )
[ otherDelegate webView : webView didFailLoadWithError : error ] ;
}
- ( BOOL ) webView : ( UIWebView * ) webView shouldStartLoadWithRequest : ( NSURLRequest * ) рдЕрдиреБрд░реЛрдз рдиреЗрд╡рд┐рдЧреЗрд╢рдирдЯрд╛рдЗрдк : ( UIWebViewNavigationType ) рдиреЗрд╡рд┐рдЧреЗрд╢рдирдЯрд╛рдЗрдк
{
рдЕрдЧрд░ ( [ otherDelegate рдиреЗ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рддреЛрд╕реЛрдЗрд▓реЗрдХреНрдЯреНрд░реЗрдЯрд░ : @selector ( webView : shouldStartLoadWithRequest : navigationType :) ] )
рд╡рд╛рдкрд╕реА [рдПрдХ рдФрд░ рдбреЗрд▓реАрдЧреЗрдЯ рд╡реЗрдм рд╡реНрдпреВ : webView shouldStartLoadWithRequest : request рдиреЗрд╡рд┐рдЧреЗрд╢рдирдЯрд╛рдЗрдк : рдиреЗрд╡рд┐рдЧреЗрд╢рдирдЯрд╛рдЗрдк ] ;
YES рд╡рд╛рдкрд╕ рдХрд░реЗрдВ ;
}
- ( рд╢реВрдиреНрдп ) webViewDidFinishLoad : ( UIWebView * ) webView
{
[ рдЖрддреНрдо рдкреНрд░рджрд░реНрд╢рдирдХрд░реНрддрд╛ : @selector ( stopRunLoop ) withObject : nil afterelelay : .01 ] ;
рдЕрдЧрд░ ( [ otherDelegate рдиреЗ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рддреЛрд╕реЛрдЗрд▓реЗрдХреНрдЯреНрд░реЗрдЯрд░ : @selector ( webViewDidFinishLoop :) ) )
[ otherDelegate webViewDidFinishLoad : webView ] ;
}
- ( рд╢реВрдиреНрдп ) stopRunLoop
{
CFRunLoopRef runLoop = [ [ NSRunLoop currentRunLoop ] getCFRunLoop ] ;
CFRunLoopStop ( runLoop ) ;
}
- ( рд╢реВрдиреНрдп ) webViewDidStartLoad : ( UIWebView * ) webView
{
рдЕрдЧрд░ ( [рдПрдХ рдФрд░ рдбреЗрд▓реАрдЧреЗрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддрд╛ рд╣реИ рддреЛрд╣рдкрд░ : @selector ( webViewDidStartLoad :) ) )
[ otherDelegate webViewDidStartLoad : webView ] ;
}
рдЪреЗрддрд╛рд╡рдиреА
рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рдПрдХ рд╕реБрдВрджрд░ рд╕реНрд╡рд░реВрдкрд┐рдд рдкрд╛рда рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рдпрд╛рд╕ рдХреЗ рддрд╛рд▓рд┐рдХрд╛ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдмреЛрд▓реНрдб рдпрд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЬрд┐рд╕рдореЗрдВ iOS3.x рд╕рдВрдЧрддрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛, рдРрд╕реА рд╕рд╛рдордЧреНрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ UI рдЕрд╡рд░реБрджреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рд╕рд╛рдордЧреНрд░реА рднрд╛рд░реА рд╣реИ, рддреЛ рдмреНрд▓реЙрдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд╣рд░ рдЬрдЧрд╣ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ!
PS Demoproject рдХреЛ
рдпрд╣рд╛рдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред