ΠΠ°ΠΊ ΠΎΠ±ΡΡΡΠ½ΡΠ»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΡ, Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ-Π΄Π΅Π»Π΅Π³Π°ΡΡ. ΠΠ½ΠΎΠΏΠΊΠ° Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠ½ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ-Π΄Π΅Π»Π΅Π³Π°ΡΠΎΠΌ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°:
β (void) tableView:(UITableView *)tableView
accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{
/* ΠΠ΅Π»Π°Π΅ΠΌ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ. */
NSLog(@"Accessory button is tapped for cell at index path = %@",
indexPath);
UITableViewCell *ownerCell = [tableView cellForRowAtIndexPath: indexPath];
NSLog(@"Cell Title = %@", ownerCell.textLabel.text);
}
ΠΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΡΠ΅Ρ ΡΡΠ΅ΠΉΠΊΡ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ»Π° Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ½ΠΎΠΏΠΊΠ° Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π² ΠΎΠΊΠ½Π΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΌΠ΅ΡΠΊΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠΈ. ΠΠ°ΠΏΠΎΠΌΠΈΠ½Π°Ρ: ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π² Xcode, Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Run\Console (ΠΠ°ΠΏΡΡΠΊ\ΠΠΎΠ½ΡΠΎΠ»Ρ).
4.3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΡΠ΅ΠΉΠΊΠ΅ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π² iOS, Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ, ΠΈ Π²Ρ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΡΠΈΡΠ²ΠΎΠΉΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° UIView ΡΠ²ΠΎΠΉΡΡΠ²Ρ accessoryView Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° UITableViewCell:
β (UITableViewCell *) tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell* cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier: MyCellIdentifier
forIndexPath: indexPath];
cell.textLabel.text = [NSString stringWithFormat:@"Section %ld, Cell %ld",
(long)indexPath.section,
(long)indexPath.row];
UIButton *button = [UIButton buttonWithType: UIButtonTypeSystem];
button.frame = CGRectMake(0.0f, 0.0f, 150.0f, 25.0f);
[button setTitle:@"Expand"
forState: UIControlStateNormal];
[button addTarget: self
action:@selector(performExpand:)
forControlEvents: UIControlEventTouchUpInside];
cell.accessoryView = button;
return cell;
}
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π² ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ performExpand:. ΠΠ½ ΠΈΠ³ΡΠ°Π΅Ρ ΡΠΎΠ»Ρ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°:
β (void) performExpand:(id)paramSender{
/* ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ ΡΠΎΠ±ΡΡΠΈΠ΅ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ */
}
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΠ΄Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠ°Ρ Π½Π°ΠΌΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ Π²ΠΈΠ΄Ρ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° ΡΠΈΡ. 4.4.
Π ΠΈΡ. 4.4. Π―ΡΠ΅ΠΉΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅
ΠΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° UITableViewCell ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ accessoryView. ΠΡΠΎ ΡΠΎΡ Π²ΠΈΠ΄, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π²Π°Ρ Π½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ ΡΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π² SDK iOS Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΈΠ΄Ρ Π΄Π»Ρ ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ ΡΡΠ΅Π΅ΠΊ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π·Π°Π΄Π°Π½ΠΎ ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, Cocoa Touch Π±ΡΠ΄Π΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° accessoryType ΠΈ ΡΡΠ°Π½Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΈΠ΄, ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π½ΡΠΉ ΡΠ²ΠΎΠΉΡΡΠ²Ρ accessoryView, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΡΡΠ΅ΠΉΠΊΠ΅ ΡΠ°Π±Π»ΠΈΡΡ.
Π ΠΊΠΎΠ΄Π΅, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π² ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅ Β«Π Π΅ΡΠ΅Π½ΠΈΠ΅Β» Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°, ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΠ΅Π΅ΠΊ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Π»ΡΠ±ΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ performExpand:. Π Π΅ΡΠ»ΠΈ Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ, ΡΠΎ Π²Ρ ΡΠΆΠ΅ ΡΡΠ°Π»ΠΈ Π·Π°Π΄Π°Π²Π°ΡΡΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ: ΠΊΠ°ΠΊ ΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊ ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ΅ΠΉΠΊΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ°-ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ? ΠΡΠ°ΠΊ, ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ²ΡΠ·Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ ΡΠ΅ΠΌΠΈ ΡΡΠ΅ΠΉΠΊΠ°ΠΌΠΈ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ½ΠΈ ΠΎΡΠ½ΠΎΡΡΡΡΡ.
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΡΠ²ΡΠ·Π°Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π° tag ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ-ΠΌΠ΅ΡΠΊΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΈΠ΄Π° Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Ρ ΡΡΠ΅ΡΡΠ΅ΠΉ ΡΡΠ΅ΠΉΠΊΠΎΠΉ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅, ΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°Π΄Π°ΡΡ Π΄Π»Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π°-ΠΌΠ΅ΡΠΊΠΈ ΡΡΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 3. ΠΠΎ Π·Π΄Π΅ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: Π² ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ Π²ΠΈΠ΄Π°Ρ Π΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π»Ρ, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ n ΡΡΠ΅Π΅ΠΊ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΈ ΡΠ°Π·Π΄Π΅Π» ΡΠ°Π±Π»ΠΈΡΡ, ΠΈ ΡΡΠ΅ΠΉΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π»Π°Π΄Π΅Π΅Ρ Π½Π°ΡΠ΅ΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ. Π ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°-ΠΌΠ΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΡΠ° Π·Π°Π΄Π°ΡΠ° ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅ΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΠΌΠ΅ΡΠΊΠΈ ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΠΉ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ Π²ΡΡΠ΅ΡΡΠΎΡΡΠΈΠΉ Π²ΠΈΠ΄ ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅, ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΏΡΠΎΡ ΠΎΠ΄Ρ Π²Π²Π΅ΡΡ ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ΅ Π²ΠΈΠ΄ΠΎΠ², ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅ΠΌ ΡΡΠ΅ΠΉΠΊΡ ΡΠΈΠΏΠ° UITableViewCell, Π²ΠΎΡ ΡΠ°ΠΊ:
β (UIView *) superviewOfType:(Class)paramSuperviewClass
forView:(UIView *)paramView{
if (paramView.superview!= nil){
if ([paramView.superview isKindOfClass: paramSuperviewClass]){
return paramView.superview;
} else {
return [self superviewOfType: paramSuperviewClass
forView: paramView.superview];
}
}
return nil;
}
β (void) performExpand:(UIButton *)paramSender{
/* ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ ΡΠΎΠ±ΡΡΠΈΠ΅ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ */
__unused UITableViewCell *parentCell =
(UITableViewCell *)[self superviewOfType: [UITableViewCell class]
forView: paramSender];
/* Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΆΠ΅Π»Π°Π΅ΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅ΡΠ΅ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΡΡΠ΅ΠΉΠΊΠΎΠΉ */
}
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ Π²ΠΈΠ΄ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ) ΠΈ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ UITableViewCell), Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ Π²ΠΈΠ΄Π°, ΡΠ²Π»ΡΡΡΠ΅Π³ΠΎΡΡ Π²ΡΡΠ΅ΡΡΠΎΡΡΠΈΠΌ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ Π²ΡΡΠ΅ΡΡΠΎΡΡΠΈΠΉ Π²ΠΈΠ΄, ΠΎΡΠ½ΠΎΡΡΡΠΈΠΉΡΡ ΠΊ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠ΅ΠΌΡ Π½Π°Ρ ΠΊΠ»Π°ΡΡΡ. ΠΡΠ°ΠΊ, ΠΎΠ½ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π²ΠΈΠ΄Π°, ΡΠ²Π»ΡΡΡΠ΅Π³ΠΎΡΡ Π²ΡΡΠ΅ΡΡΠΎΡΡΠΈΠΌ Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ, ΠΈ Π΅ΡΠ»ΠΈ ΡΡΠΎΡ Π²ΡΡΠ΅ΡΡΠΎΡΡΠΈΠΉ Π²ΠΈΠ΄ Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠΌΡ ΡΠΈΠΏΡ, ΡΠΎ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΠΈ Π΅Π³ΠΎ Π²ΡΡΠ΅ΡΡΠΎΡΡΠΈΠΉ Π²ΠΈΠ΄, ΠΈ ΡΠ°ΠΊ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΡΡΠ΅ΡΡΠΎΡΡΠΈΡ Π²ΠΈΠ΄ΠΎΠ², ΠΎΡΠ½ΠΎΡΡΡΠΈΠΉΡΡ ΠΊ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ. ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΌΠ΅ΡΠΎΠ΄Π° superviewOfType: forView: ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΡΡΠΊΡΡΡΡ Class. Π ΡΡΠΎΠΌ ΡΠΈΠΏΠ΅ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ ΠΈΠΌΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ· ΡΠ·ΡΠΊΠ° Objective-C, ΠΈ ΡΡΠΎ Π²Π΅ΡΡΠΌΠ° ΠΊΡΡΠ°ΡΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠ΅ΡΠ΅ ΠΈΠ»ΠΈ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΡΠ΅ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΊΠ»Π°ΡΡΠΎΠ².
4.4. ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΌΠ°Ρ ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π² ΡΡΠ΅ΠΉΠΊΠ°Ρ ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ Π²ΠΈΠ΄ΠΎΠ²
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±Π΅Π· ΡΡΡΠ΄Π° ΡΠ΄Π°Π»ΡΡΡ ΡΡΡΠΎΠΊΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ Π² Π΄Π΅Π»Π΅Π³Π°ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΡΠ΅Π»Π΅ΠΊΡΠΎΡ tableView: editingStyleForRowAtIndexPath:, Π° Π² ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ΅ Π΄Π°Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° β ΡΠ΅Π»Π΅ΠΊΡΠΎΡ tableView: commitEditingStyle: forRowAtIndexPath::
β (UITableViewCellEditingStyle)tableView:(UITableView *)tableView
editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
return UITableViewCellEditingStyleDelete;
}
β (void) setEditing:(BOOL)editing
animated:(BOOL)animated{
[super setEditing: editing
animated: animated];
[self.myTableView setEditing: editing
animated: animated];
}
β (void) tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath{
if (editingStyle == UITableViewCellEditingStyleDelete){
/* Π‘Π½Π°ΡΠ°Π»Π° ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ */
[self.allRows removeObjectAtIndex: indexPath.row];
/* ΠΠΎΡΠΎΠΌ ΡΠ΄Π°Π»ΡΠ΅ΠΌ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Ρ Π½ΠΈΠΌ ΡΡΠ΅ΠΉΠΊΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° */
[tableView deleteRowsAtIndexPaths:@[indexPath]
withRowAnimation: UITableViewRowAnimationLeft];
}
}
ΠΠ΅ΡΠΎΠ΄ tableView: editingStyleForRowAtIndexPath: ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ. ΠΠ½ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΌ Π²ΠΈΠ΄ΠΎΠΌ, Π° Π΅Π³ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅Π»Π°ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ (Π²ΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠ΄Π°Π»ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ Ρ. Π΄.). ΠΠ΅ΡΠΎΠ΄ tableView: commitEditingStyle: forRowAtIndexPath: Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°ΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ. ΠΡΠΎΡΠΎΠΉ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π² Π΄Π΅Π»Π΅Π³Π°ΡΠ΅, Π½ΠΎ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½: ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΠΈ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ.
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅
Π’Π°Π±Π»ΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° ΠΆΠ΅ΡΡ ΡΠΌΠ°Ρ ΠΈΠ²Π°Π½ΠΈΡ (Swipe), ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Ρ ΠΊΠ½ΠΎΠΏΠΊΡ Π² ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ Π·Π°ΡΡΠΎΠ½ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (ΡΠΈΡ. 4.5). ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄ Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ ΡΡΠ° ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΡΠΎΠΊΡ.
Π ΠΈΡ. 4.5. ΠΠ½ΠΎΠΏΠΊΠ° Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ, ΠΏΠΎΡΠ²Π»ΡΡΡΠ°ΡΡΡ Π² ΡΡΠ΅ΠΉΠΊΠ΅ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°
Π’Π°ΠΊΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° tableView: editingStyleForRowAtIndexPath: (ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ UITableViewDelegate), ΡΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π±ΡΠ΄ΡΡ Π»ΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΡΠ°Π²ΠΊΠΈ, ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ, ΠΈΠ»ΠΈ ΠΎΠ±Π΅ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΈΠ»ΠΈ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ . Π Π΅Π°Π»ΠΈΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄ tableView: commitEditingStyle: forRowAtIndexPath: Π² ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ΅ Π΄Π°Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π²ΡΡΠ°Π²ΠΊΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅.