
рд╣реИрд▓реЛ, рдЕрднрд┐рднрд╛рд╡рдХ!
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЕрдкрдиреЗ рдирд╡реАрдирддрдо iOS рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛, рдореИрдВ рдХреЗрд╡рд▓ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдЬреЛ рд╣рдм, рдЬреАрдердм рдФрд░ рдмрд╛рдХреА рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЦреЛрдЬрдХрд░ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗред рдХрд╛рд░реНрдп рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдерд╛: рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдШреБрдордХреНрдХрдбрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рд╕рд░рд▓ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдорд╛рдирдХ рдЖрдИрдУрдПрд╕ 7 рдЧреИрд▓рд░реА рдореЗрдВ рдЬреИрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпреЛрдВрдХрд┐ рдорд╛рдирдХ рдШрдЯрдХ
MPMoviePlayerViewController рд╡реАрдбрд┐рдпреЛ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛
рдЧрдпрд╛ рдерд╛ , рдФрд░ рдпрд╣ рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдХреЛ рд░реАрд╡рд╛рдЗрдВрдб рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдирд┐рдпрдорд┐рдд рдЕрдВрддрд░рд╛рд▓ рдкрд░ рд╡реАрдбрд┐рдпреЛ рд╕реЗ рдЪрд┐рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ
UIView рдкрд░ рд░рдЦрдирд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╡реЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рддрд╣рдд рд▓рдЧрднрдЧ рд╣реЛрдВрдЧреЗ рд╡реАрдбрд┐рдпреЛ рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП, рдореИрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореБрдЭреЗ рдХреБрдЫ рдФрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдерд╛: iPad рдкрд░ рд╡реАрдбрд┐рдпреЛ рд╕реЗ рдЪрд┐рддреНрд░ рдмрдирд╛рддреЗ рд╕рдордп рдмреНрд░реЗрдХ, рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдФрд░ рдХреНрд╖реИрддрд┐рдЬ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрд▓рд╛рдЗрдбрд░ рдХреА рд▓рдВрдмрд╛рдИред
рдЗрд╕рд▓рд┐рдП, рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╡реАрдбрд┐рдпреЛ рд╕реЗ рдЪрд┐рддреНрд░ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдФрд░
AVAssetImageGenerator рдЗрд╕рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╡рд░реНрдЧ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдПрдХ рдордирдорд╛рдиреЗ рд╕реНрдерд╛рди рд╕реЗ рдЪрд┐рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реА рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рд╣реЛрдо рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рдЗрд╕реЗ
test.mov рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:
NSString *filepath = [NSString stringWithFormat:@"%@/Documents/test.mov", NSHomeDirectory()]; NSURL *fileURL = [NSURL fileURLWithPath:filepath];
AVAssetImageGenerator рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
рдореИрдВ
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ CMTime рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдерд╛, рдФрд░ рд╕рдордп рдХреЛ рд╕рдорд╛рди рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдордЭрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреНрдпрд╛ рд╣реИред
CMTimeMake рджреЛ рддрд░реНрдХреЛрдВ рдХреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ:
рдореВрд▓реНрдп рдФрд░
рдЯрд╛рдЗрдорд╕реНрдХреЗрд▓ ред рдореИрдВрдиреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдкрдврд╝реЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рд░рд▓ рд╢рдмреНрджреЛрдВ рдореЗрдВ рд╕рдордЭрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрди рддрд░реНрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ,
timescale рд╡рд╣ рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдХрдВрдб рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдЙрд╕ рд╕рдЯреАрдХрддрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рд╕рдордп рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдмрд┐рдВрджреБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк 10 рдХреЗ рдмрд░рд╛рдмрд░
рдЯрд╛рдЗрдорд╕реНрдХреЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рд╕реЗрдХрдВрдб рдХрд╛ 1/10 рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдмрджрд▓реЗ рдореЗрдВ,
рдореВрд▓реНрдп рд╕рдордп рдХреЗ рд╡рд╛рдВрдЫрд┐рдд рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЦрд╛рддреЗ рдХреЗ
рд╕рдордп рдореЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 60 рд╕реЗрдХрдВрдб рд▓рдВрдмрд╛ рдПрдХ рд╡реАрдбрд┐рдпреЛ рд╣реИ, 30 рд╕реЗрдХрдВрдб рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП
рдЯрд╛рдЗрдорд╕реЗрд▓ 10 рд╣реИ,
рдореВрд▓реНрдп 300 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕реАрдПрдордЯрд╛рдЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдордп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдХреНрд╖рдг рдореЗрдВ рд╕реЗрдХрдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛
рдореВрд▓реНрдп / рд╕рдордп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ, 30 рд╕реЗрдХрдВрдб 300/10 рд╣реИред рдпрджрд┐ рд╣рдо рд╕реЗрдХрдВрдб рд╕реЗ рд▓реЗрдХрд░
рд╕реАрдПрдордЯрд╛рдЗрдо рддрдХ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЛ
рд╕рдордЭрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рддреЛ рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдЖрдЧреЗ рдмрдврд╝реЛ, рдЕрдм рд╣рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдХреА рд▓рдВрдмрд╛рдИ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ
рдПрд╕реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдкрддреНрддрд┐ рд╣реИред
CMTime duration = asset.duration;
рдЦреИрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддрд╕реНрд╡реАрд░реЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдХрд╛рдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╣реИред рдЕрдм рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рддрдиреЗ рдкреЛрд░реНрдЯреНрд░реЗрдЯ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдкрд░рд┐рджреГрд╢реНрдп рдЙрдиреНрдореБрдЦреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдкрд╣рд▓реА рдмрд╛рдд рдЬрд┐рд╕ рдкрд░ рдЖрдкрдХреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд╡рд╣ рдЖрдИрдлреЛрди рдФрд░ рдЖрдИрдкреИрдб рдХреА рдорд╛рдирдХ рдЧреИрд▓рд░реА рдореЗрдВ рдШреБрдордХреНрдХрдбрд╝ рдХреА рдКрдВрдЪрд╛рдИ рд╣реИред рд╣рд╛рдВ, рдпрд╣ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИ, рдХреЗрд╡рд▓ рдЪреМрдбрд╝рд╛рдИ рдЕрд▓рдЧ рд╣реИред рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЪрд┐рддреНрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдПрдХ рдЪрд┐рддреНрд░ рдХреА рдЪреМрдбрд╝рд╛рдИ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рд╕реНрд▓рд╛рдЗрдбрд░ рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдореИрдВ 29x29 рдкрд┐рдХреНрд╕рд▓ рдХреЗ рд╡рд░реНрдЧ рдЪрд┐рддреНрд░ рдмрдирд╛рдКрдВрдЧрд╛ред рдпрд╣рд╛рдВ рдПрдХ рд╕реВрдХреНрд╖реНрдо рдмрд┐рдВрджреБ рд╣реИ, рдЬрдирд░реЗрдЯрд░ рдореЗрдВ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП 58x58 рдХрд╛ рдореВрд▓реНрдп рд╣реЛрдЧрд╛ред
generator.maximumSize = CGSizeMake(58.0, 58.0);
рд╕рд╛рджрдЧреА рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдЫрд╡рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ
#define iPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) #define ThumbnailsCountInPortrait (iPad ? 25 : 10) #define ThumbnailsCountInLandscape (iPad ? 38 : 15)
рдЕрдм рдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИред рдореИрдВрдиреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд░рдгрд┐рдпрд╛рдБ рдмрдирд╛рдИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЪрд┐рддреНрд░ рдФрд░ рдкрд░рд┐рджреГрд╢реНрдп рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ, рд╡реАрдбрд┐рдпреЛ рд╕реЗ рдЪрд┐рддреНрд░ рдЕрд▓рдЧ рд╣реЛрдВрдЧреЗред
NSMutableArray *portraitThumbnails = [NSMutableArray array]; NSMutableArray *landscapeThumbnails = [NSMutableArray array];
рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣рд╛рдВ рдпрд╣ рдмрддрд╛рдирд╛ рдЙрдЪрд┐рдд рд╣реЛрдЧрд╛ рдХрд┐ рдкреНрд░рд╛рдкреНрдд рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдПрдХ
UIView рдкрд░ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХреИрд╕реЗ рд░рдЦрд╛ рдЬрд╛рдП, рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рднрд┐рдиреНрди рдбрд┐рд╡рд╛рдЗрд╕ рдУрд░рд┐рдПрдВрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рд╕рд░рдгрд┐рдпреЛрдВ рд╕реЗ рдХреИрд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рдПред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рд╕рдм рд╕рдорд╛рдкреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдмреНрд░реЗрдХ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдХреНрдпреЛрдВрдХрд┐ рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЛ рддрдм рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдирд┐рдпрдВрддреНрд░рдХ рдмреВрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд░реНрддрдорд╛рди рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдПрдиреАрдореЗрд╢рди рд╕рдВрдХреНрд░рдордг рдореЗрдВ рджреЗрд░реА рд╣реЛрдЧреАред рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрдкрд╛рдп рд╣реИ
dispatch_async ред рдпрд╣ рдмреЗрд╣рдж рдЙрдкрдпреЛрдЧреА рдЪреАрдЬ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдзреАрдорд╛ рдХрд┐рдП рдмрд┐рдирд╛, рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдк рд╕реЗ рдмреНрд▓реЙрдХ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ [videoScroller initializeThumbnails]; dispatch_async(dispatch_get_main_queue(), ^{ [videoScroller loadThumbnails]; }); });
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐
рд╡реАрдбрд┐рдпреЛрд╕реНрдХреНрд░реЙрд▓рд░ рд╣рдорд╛рд░реА рд╡рд╕реНрддреБ рд╣реИ рдЬреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред
рдПрдХ рдХрд╛рд░реНрдпрдХрд╛рд░реА рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
https://github.com/iBlacksus/BLVideoScrollerрдкреБрдирд╢реНрдЪрдпрд╣ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд▓реЗрдЦ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдлреЗрд░реАрд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдореИрдВ рдПрдХ рд╕реНрд▓рд╛рдЗрдбрд░ рдмрдирд╛рдиреЗ рдкрд░ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЖрдкрдХреЛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдкреИрд▓реЗрдЯ рд╕реЗ рдкрд╛рда рдХрд╛ рд░рдВрдЧ рдЪреБрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╕рд┐рд░реНрдл рдПрдХ рддрд╕реНрд╡реАрд░ рд╣реИред