рд╣рд╛рд▓ рд╣реА рдореЗрдВ, iOS рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП Vkontakte рдлреЛрдЯреЛ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХреЗ рддреАрди рд░рд╛рдЙрдВрдб рд╣реБрдП рд╣реИрдВред рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХрд╛ рд▓рд┐рдВрдХ:
http://vk.com/photo_contest рдкрд╣рд▓реЗ рджреМрд░ рдХреЗ рдЖрд╡реЗрджрди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореБрдЭреЗ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдорд╛рдзрд╛рди рдорд┐рд▓реЗред рдореИрдВ рдЗрди рдлреИрд╕рд▓реЛрдВ рдХреЛ рдЬрдирддрд╛ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдореБрдЭреЗ iOS рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирдпрд╛ рдЦреЛрдЬрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреБрдХреНрдд рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 2-5 рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЕрдиреБрднрд╡ рдХреЗ рд╕рд╛рде рд▓реЗрдЦ рдЖрдИрдУрдПрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред
рд╕реНрдХреНрд░реЙрд▓ рдХреЗ рд╕рд╛рде рдХреНрд╖реИрддрд┐рдЬ рдЯреЗрдк
рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдореЛрд░реА рд╕реЗ рдирд╡реАрдирддрдо рддрд╕реНрд╡реАрд░реЗрдВ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдмрд╣реБрдд рд╕рдХреНрд╖рдо рд╣реИ рдХрд┐ рдЯреЗрдк рдореЗрдВ рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рд╕реЗ рдЖрдк рдмрд┐рд▓реНрдХреБрд▓ 4 рдпрд╛ 5 рдЪрд┐рддреНрд░ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ 4 рдФрд░ 1/3 рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рддреБрд░рдВрдд рд╕рдордЭрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рддрд╕реНрд╡реАрд░реЛрдВ рдХреА рд╕реВрдЪреА рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░ рд░рд╣реА рд╣реИред
рдХрдИ рдкреНрд░рд╢реНрди рд╣реИрдВ:
- рдЗрд╕ рдлрд╝реАрдб рдореЗрдВ рдХрд┐рддрдиреА рддрд╕реНрд╡реАрд░реЗрдВ рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рд╣реИрдВ?
- рдлрд╝реЛрдЯреЛ рдХреЗ рдбрд╛рдпрдирд╛рдорд┐рдХ рдЕрдкрд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╡реЗ рд╕рднреА рд░реИрдо рдореЗрдВ рд▓рдЯрдХрд╛ рди рд░рд╣реЗрдВ?
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рдореИрдВ рдЯреЗрдк рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдореЗрдореЛрд░реА рд╕реЗ рд╕рднреА рддрд╕реНрд╡реАрд░реЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реВрдБрдЧрд╛, рдбрд╛рдЙрдирд▓реЛрдб рдЧрддрд┐ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд▓реМрдЯрдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛ред
рддреБрд░рдВрдд рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдореЗрдореЛрд░реА рд╕реЗ рд╕рднреА рддрд╕реНрд╡реАрд░реЛрдВ рдХреЛ рд╕рд╣реА рдХреНрд░рдо рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдереА, рдХреНрдпреЛрдВрдХрд┐ рдЯреЗрдк рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирд╡реАрдирддрдо рдлрд╝реЛрдЯреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдпрд╣ рддреБрд░рдВрдд рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдирд╡реАрдирддрдо рдлрд╝реЛрдЯреЛ рд╕рд╣реЗрдЬреА рдЧрдИ рдлрд╝реЛрдЯреЛ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдПрд▓реНрдмрдо рдореЗрдВ рдирд╣реАрдВ рдереАрдВ, рд▓реЗрдХрд┐рди рдлреЛрдЯреЛ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ, рдЬрд┐рд╕реЗ рдореЗрд░реЗ рднрд╛рдИ рдиреЗ рдЙрд╕ рджрд┐рди рдореЗрд░реЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдерд╛ред
рдпрд╣ рдЯреЗрдк рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЧрдП рдлрд╝реЛрдЯреЛ рдХреЗ рд╕рд╛рде рдПрд▓реНрдмрдо рд╕реЗ рдирд╡реАрдирддрдо рдлрд╝реЛрдЯреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдПрд▓реНрдмрдо рдХреЗ рдкреАрдЫреЗ рдЕрдиреНрдп рд╕рднреАред рдлреЛрдЯреЛрдЧреНрд░рд╛рдлреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдПрд▓реНрдмрдо рдХреЗ рдЕрдВрджрд░ рдореИрдВрдиреЗ рдЖрдЦрд┐рд░реА рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рд╢реБрд░реВ рдХреАред рдпрд╣рд╛рдБ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИ рдЬреЛ рд╡рд░реНрдгрд┐рдд рдХреНрд░рдо рдореЗрдВ
ALAsset
рдХреА рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ:
@implementation ALAssetsLibrary (Extension) - (void)latestAssetsAndCall:(void (^)(NSMutableArray *))callback { __block NSMutableArray * assets = [NSMutableArray arrayWithCapacity:5000]; [self enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) { if (group == nil) { callback(assets); return; } ALAssetsGroupType groupType = [[group valueForProperty:ALAssetsGroupPropertyType] intValue]; int insertIndex = (groupType == ALAssetsGroupSavedPhotos) ? 0 : assets.count; [group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) { if (result != nil) [assets insertObject:result atIndex:insertIndex]; }]; } failureBlock:^(NSError *error) { if (error) NSLog(@"%@", error); }]; } @end
рджреВрд╕рд░реЗ рдкреНрд░рд╢реНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореБрдЭреЗ
UITableView
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рд▓рдВрдмреА рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ, рд╕рд╛рдордЧреНрд░реА рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд╕рдорд╛рди рддрд╛рд▓рд┐рдХрд╛ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдпрд╣ рд╣реИ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ 90 ┬░ рд╡рд╛рдорд╛рд╡рд░реНрдд рдШреБрдорд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рд╡рд╕реНрддреБ рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рдЯреЗрдк рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕реНрдерд╛рди рдореЗрдВ
UITableView
рдХрд╛ рдХреЗрдВрджреНрд░ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╣реИрдВ:
self.tableView.transform = CGAffineTransformMakeRotation(-M_PI_2);
рдЯреЗрдмрд▓ рд╕реЗрд▓ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рд░рд┐рд╡рд░реНрд╕ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдореЗрд╢рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ - рд░реЛрдЯреЗрд╢рди 90 ┬░ рдХреНрд▓реЙрдХрд╡рд╛рдЗрдЬ:
- (UItableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"BottomRollCell"]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"BottomRollCell"]; cell.contentView.transform = CGAffineTransformMakeRotation(M_PI_2);
рдЖрдЦрд┐рд░ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ? рдЬреИрд╕реЗ рд╣реА рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдХреНрд░реЙрд▓ рд╣реЛрддреА рд╣реИ, рдпрд╣ рд╣рдорд╕реЗ рдЗрд╕рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдорд╛рдВрдЧрддреА рд╣реИред
ALAsset
рдХреА рдПрдХ рд╕рд░рдгреА рд╣реЛрдиреЗ рд╕реЗ, рд╣рдореЗрдВ
рдердВрдмрдиреЗрд▓ рдЪрд┐рддреНрд░ рдорд┐рд▓рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рд╕реЗ рднрд░ рджреЗрддреЗ рд╣реИрдВред рддрд╛рд▓рд┐рдХрд╛ рдмрд╣реБрдд рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреА рд╣реИ, рдлрд╝реЛрдЯреЛ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЕрдВрддрд░рд╛рд▓ рдирд╣реАрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╕рднреА рдлрд╝реЛрдЯреЛ рд▓реЗрдиреЗ рдХреЗ рд╕рдордп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ - 2500 рдлрд╝реЛрдЯреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ 1 рд╕реЗрдХрдВрдб рд╕реЗ рдХрдо рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рд╣рдо
ALAsset
рдкреНрд░рд╛рдкреНрддрд┐ рдкрд░ рджрд╛рдИрдВ рд╕реЗ рдмрд╛рдИрдВ рдУрд░ рдЧрд┐рд░рдиреЗ рд╡рд╛рд▓реА рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдПрдХ рдПрдиреАрдореЗрд╢рди
ALAsset
ред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд┐рдХрд▓рддрд╛ рд╣реИ рдФрд░ рдЖрдзрд╛ рд╕реЗрдХрдВрдб рдХреА рджреЗрд░реА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрд╡реЗрд░реА рд╕рднреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЧрддрд┐ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рдХрдИ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдХреЗ, рдпрд╣ рдХреБрдЫ рд╣рдж рддрдХ рдореБрдЭреЗ рдирд┐рд░рд╛рд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкрд╣рд▓реЗ рдлрд╝реЛрдЯреЛ рдХреЗ рддреНрд╡рд░рд┐рдд рдкреНрд░реАрд▓реЛрдб рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреВрд▓рди рд░реЛрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред
рдлрд╝реЛрдЯреЛ рдЦреЛрд▓рдиреЗ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдПрдиреАрдореЗрд╢рди
рдпрд╣ рдЯреЗрдк рд╕реЗ рд╕реАрдзреЗ рдердВрдмрдиреЗрд▓ рд╕реЗ рдлрд╝реЛрдЯреЛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрдм рдЙрдиреНрд╣реЗрдВ рдЦреЛрд▓рд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╕рдВрдкрд╛рджрди рд░рджреНрдж рд╣реЛрдиреЗ рдкрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрд▓ рдХреА рдЖрдпрдд рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХрдХреНрд╖рд╛ рд╡рд┐рдзрд┐
UITableView
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛:
- (CGRect)rectForRowAtIndexPath:(NSIndexPath *)indexPath;
рдореБрдЭреЗ рддрд╕реНрд╡реАрд░ рдХреЗ рд╕рдЯреАрдХ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛
рдордиреНрдирд╛ рдЦрд░реНрдЪ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЗрд╕рдХреЗ рд░реЛрдЯреЗрд╢рди рдЖрджрд┐ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдПред рдореБрдЦреНрдп рджреГрд╢реНрдп рдореЗрдВ рдердВрдмрдиреЗрд▓ рдЫрд╡рд┐ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдердВрдмрдиреЗрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдореИрдВрдиреЗ рдПрдХ рдХрдо рдкреВрд░реНрдг рдЖрдХрд╛рд░ рдХреА рдЫрд╡рд┐ рд░рдЦреА рдФрд░ рдЫрд╡рд┐ рдХреЗ рдЖрдХрд╛рд░ рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рдПрдирд┐рдореЗрдЯреЗрдб рд░реВрдк рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдореИрдВ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЫрд╡рд┐ рдПрдХ рдЧреИрд░-рд░реЗрдЦреАрдп рдкрде рдХреЗ рд╕рд╛рде рдЯреЗрдк рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╕рдордп рдирд╣реАрдВ рдмрдЪрд╛ ...
рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рддрд╕реНрд╡реАрд░реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
ALAssetsLibraryChangedNotification рдШрдЯрдирд╛ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреА рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрдкрдХреЛ
ALAsset
рдХреЗ рд╕рд░рдгреА рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдирд╛
ALAsset
ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдлрд╝реЛрдЯреЛ рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╕рдордп рдЯреЗрдк рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдЧрд▓реЗ рдЕрдкрдбреЗрдЯ рдХреЗ рджреМрд░рд╛рди рдЯреЗрдк
ALAsset
рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░
ALAsset
рд╕рд░рдгреА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдирдпрд╛
ALAsset
рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
рд╕рд╣реЗрдЬрдирд╛ рдореЗрд░реА рд╕рдмрд╕реЗ рдмрд╛рдИрдВ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореИрдВ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдПрдХ рдЫрд╡рд┐ рдХреА рдЪреМрдбрд╝рд╛рдИ рд╕реЗ рджрд╛рдИрдВ рдУрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рдЯреЗрдк рдореЗрдВ рдЫрд╡рд┐ рдХреЛ рдЪреЗрддрди рдХрд░рддрд╛ рд╣реВрдВ, рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдПрдиреАрдореЗрд╢рди рдХреЗ рдмрд┐рдирд╛ рд╡рд╛рдкрд╕ рд▓реЗ рдЬрд╛рддрд╛ рд╣реВрдВ, рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреБрдирдГ
reloadData
рдХреЙрд▓ рдХрд░рддрд╛
reloadData
ред
рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╕рдВрднрд╡ рд╣реЛ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЦреЛрд▓рдиреЗ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдПрдиреАрдореЗрд╢рди рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рдо рдХрд░рдирд╛ рдерд╛ред рдпрджрд┐ рдЖрдк рдХреЛрдИ рдлреЛрдЯреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЙрд╕рдХрд╛ рдкреИрдорд╛рдирд╛ рдмрджрд▓реЗрдВ рдФрд░ рдХреИрдВрд╕рд▓ рдмрдЯрди рджрдмрд╛рдПрдВ, рдпрд╣ рддрд╕реНрд╡реАрд░ рдареАрдХ рдЙрд╕реА рд░реВрдк рдореЗрдВ рд░рд┐рдмрди рдореЗрдВ рдЙрдбрд╝ рдЬрд╛рдПрдЧреА, рдЬрд┐рд╕ рд░реВрдк рдореЗрдВ рд╣рдордиреЗ рдЗрд╕реЗ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдЫреЛрдбрд╝рд╛ рдерд╛ред рдЬрдм рддрдХ рдпрд╣ рд╕реНрдХреНрд░реАрди рдХреА рд╕реАрдорд╛ рдХреЗ рдкреАрдЫреЗ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддрдм рддрдХ рдлреЛрдЯреЛ рдЗрд╕ рд░реВрдк рдореЗрдВ рд░рд╣реЗрдЧрд╛ред рдЗрд╕ рдкреНрд░рднрд╛рд╡ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЪрд╛рдмрд┐рдпрд╛рдБ рдХреЗ рд░реВрдк рдореЗрдВ
NSMutableDictionary
URL рдХреЗ рд╕рд╛рде
NSMutableDictionary
рдФрд░ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ
CGRect
рдпреБрдХреНрдд рдПрдХ
NSValue
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рд╡реАрдбрд┐рдпреЛ рд╕рдореАрдХреНрд╖рд╛ рдореЗрдВ рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рднреВрд▓ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдереАред
рдкреНрд░рднрд╛рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреИрдорд╛рдиреЗ рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреА рддрд╕реНрд╡реАрд░реЗрдВ
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрдпрдирд┐рдд рдкреНрд░рднрд╛рд╡ рдХреЗ рдПрдХ рд╕рд╛рде рдЖрд╡реЗрджрди рдФрд░ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдореЗрдВ рдлреЛрдЯреЛ рдХреЗ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдФрд░ рдкреЛрдЬрд┐рд╢рдирд┐рдВрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рднреА, рд╕рдм рдХреБрдЫ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ рдФрд░ рдкреНрд░рднрд╛рд╡ рд▓рд╛рдЧреВ рдХрд░реЗрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ - рдзреАрдорд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрдирдиреНрдж рдИрд╢реНрд╡рд░рд╡рд┐рд╣реАрди рд╣реЛрдЧрд╛ред рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдорд╛рдзрд╛рди рдкрд╛рдпрд╛ рдЧрдпрд╛, рдореБрдЦреНрдп рддрд╕реНрд╡реАрд░ рдХреЗ рд▓рд┐рдП рдЪрдпрдирд┐рдд рдкреНрд░рднрд╛рд╡ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдФрд░ рдлреЛрдЯреЛ рдХреЛ рдкрд╛рдВрдЪ рдЧреБрдирд╛ рдХрдо (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ 320.0 / 56.0) рд▓реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдХреА рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдФрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп
UIScrollView
рд╕рд╛рде рдердВрдмрдиреЗрд▓ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░реЗрдВред рдпрд╣ рд╡рд┐рдзрд┐ рдЬрд▓реНрджреА, рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдмрд┐рдирд╛ рдЬрд╛рдо рдХреЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред
рдХреЛрдб рдЬреЛ рдореБрдЦреНрдп рд╕реНрдХреНрд░реЙрд▓ рдХреЗ рд╕рд╛рде рдердВрдмрдиреЗрд▓ рд╕реНрдХреНрд░реЙрд▓ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ (рдпреЗ
UIScrollViewDelegate
рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╡рд┐рдзрд┐ рд╣реИрдВ):
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { for (UITableViewCell * cell in [self.filtersTable visibleCells]) { UIScrollView * filterScrollView = (UIScrollView *)[cell.contentView viewWithTag:125]; filterScrollView.contentOffset = CGPointMake(scrollView.contentOffset.x*56/320, scrollView.contentOffset.y*56/320); } } - (void)scrollViewDidZoom:(UIScrollView *)scrollView { for (UITableViewCell * cell in [self.filtersTable visibleCells]) { UIScrollView * filterScrollView = (UIScrollView *)[cell.contentView viewWithTag:125]; filterScrollView.zoomScale = self.scrollView.zoomScale; filterScrollView.contentOffset = CGPointMake(scrollView.contentOffset.x*56/320, scrollView.contentOffset.y*56/320); } }
рдкрд░рд┐рдгрд╛рдо рд╕рд╣реЗрдЬ рд░рд╣рд╛ рд╣реИ
рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрд╡реЗрджрди рдХреА рдЧрддрд┐ рдФрд░ рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреА рдЧреБрдгрд╡рддреНрддрд╛, рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╡рд┐рдирд┐рдпрдорд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ 640x640 (рд░реЗрдЯрд┐рди рдкрд░) рдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдЫрд╡рд┐ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рдкреНрд░рдореБрдЦ рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рджреГрд╢реНрдп рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реИ:
- (UIImage *)renderImageForSaving { UIGraphicsBeginImageContextWithOptions(self.scrollView.bounds.size, YES, 0.0); CGContextTranslateCTM(UIGraphicsGetCurrentContext(), 0, -self.scrollView.frame.origin.y); [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage * image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return image; }
рдпрд╣ рд╢рд┐рд▓рд╛рд▓реЗрдЦреЛрдВ рдЖрджрд┐ рдХреЗ рд╕рд╛рде рддреЗрдЬ рдФрд░ рдмрд┐рдирд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╣реИред рд╣рд╛рдВ, рд╕рдВрдХрд▓реНрдк рдХреЛ рдФрд░ рднреА рдЕрдзрд┐рдХ рдмрдЪрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ - рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд╕рдордп рдФрд░ рдзреИрд░реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ)
рдореЗрд░реЗ рд╢рд░рд╛рд░рддреА рдХреБрддреНрддреЗ рдХреЗ рд╕рд╛рде рд╡реАрдбрд┐рдпреЛ рдЖрд╡реЗрджрди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди:
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рд▓рд┐рдВрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ (рдареАрдХ рд╣реИ?)ред рдЖрд╡реЗрджрди рдХреНрд░рдорд╢рдГ рдирд┐рд╢реБрд▓реНрдХ рдФрд░ рд╡рд┐рдЬреНрдЮрд╛рдкрдиреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╣реИред
рдРрдк рд▓рд┐рдВрдХ:
https://itunes.apple.com/app/pictography/id570470169IOS5 рдХреЗ рддрд╣рдд, рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧреНрд▓рд┐рдЪ рдЕрдм рджреЗрдЦреЗ рдЧрдП рд╣реИрдВ, рд╕реБрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрджреНрдпрддрди рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рддрдХ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ ...
PS рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рдЖрдпреЛрдЬрди рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП Vkontakte рдХреЛ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдЖрдЦрд┐рд░рдХрд╛рд░, рд╡реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реНрд╕ рдХреЛ рдЙрдирдХреЗ рд▓рд┐рдП рдирдП, рд╣реЛрдирд╣рд╛рд░ рдордВрдЪ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд / рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдордВрдЪ рдХреЗ рд▓рд┐рдП рдХрдИ рдирдП рд▓реЛрдЧ рд╣реИрдВ)ред рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдмрд╣реБрдд рдкреНрд░рд╕рдиреНрди рдерд╛ - рд╕рднреА рдЪрд┐рддреНрд░ рдЪрдпрди рдХреА рддрд░рд╣ рдереЗред рдХрд╣реАрдВ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд┐рдХреНрд╕реЗрд▓ рдирд╣реАрдВ ...