ΠΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° deleteRowsAtIndexPaths: withRowAnimation: ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΡΡΡΠΎΠΊ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π·Π°Π΄Π°Π»ΠΈ, ΡΡΠΎ ΡΠ΄Π°Π»ΡΠ΅ΠΌΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π±ΡΠ΄ΡΡ ΡΡ ΠΎΠ΄ΠΈΡΡ Ρ ΡΠΊΡΠ°Π½Π° Π² Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠΏΡΠ°Π²Π° Π½Π°Π»Π΅Π²ΠΎ.
4.5. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅ΡΡ Π½ΠΈΡ ΠΈ Π½ΠΈΠΆΠ½ΠΈΡ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»ΠΎΠ² Π² ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ Π²ΠΈΠ΄Π°Ρ
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π²Π΅ΡΡ Π½ΠΈΠΉ ΠΈ/ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ».
Π Π΅ΡΠ΅Π½ΠΈΠ΅
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π²ΠΈΠ΄ (ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ, Π²ΠΈΠ΄ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ»Π°ΡΡ, ΠΏΡΡΠΌΠΎ ΠΈΠ»ΠΈ ΠΎΠΏΠΎΡΡΠ΅Π΄ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΎΡ UIView) ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠΉΡΠ΅ ΡΡΠΎΡ Π²ΠΈΠ΄ Π²Π΅ΡΡ Π½Π΅ΠΌΡ ΠΈ/ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΌΡ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Ρ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π²ΡΠΊΠΎΡΠ΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, Π΄Π»Ρ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΠ΅ΠΊ.
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅
Π’Π°Π±Π»ΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡ Π½ΠΈΡ ΠΈ Π½ΠΈΠΆΠ½ΠΈΡ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»ΠΎΠ². Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ²ΠΎΠΉ Π²Π΅ΡΡ Π½ΠΈΠΉ ΠΈ Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ», ΡΠ°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΡΡΠΈ ΡΠ°Π·Π΄Π΅Π»Π°, ΡΠΎ Π² Π½Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ ΡΡΠΈ Π²Π΅ΡΡ Π½ΠΈΡ ΠΈ ΡΡΠΈ Π½ΠΈΠΆΠ½ΠΈΡ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Π°. ΠΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²Π΅ΡΡ Π½ΠΈΠ΅ ΠΈ Π½ΠΈΠΆΠ½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Ρ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ ΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ°Π΅ΡΠ΅, ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΈΠ»ΠΈ Π½Π΅Ρ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΌΡ Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π΅Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅ Π±ΡΠ΄ΡΡ Π²Π΅ΡΡ Π½ΠΈΠΉ ΠΈ Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Ρ. ΠΡΠΈ Π²ΠΈΠ΄Ρ-ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΌΡ Π²ΠΈΠ΄Ρ ΡΠ΅ΡΠ΅Π· Π΅Π³ΠΎ Π΄Π΅Π»Π΅Π³Π°Ρ β Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΅ΡΠΈΡΠ΅ ΠΈΡ ΡΠ΄Π΅Π»Π°ΡΡ. ΠΠ΅ΡΡ Π½ΠΈΠ΅ ΠΈ Π½ΠΈΠΆΠ½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Ρ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΡΠ°ΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°Π΅ΡΡΡ, ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ Π½ΠΈΠΌ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°ΡΡΡΡ ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Ρ ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ². Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»ΠΎΠ² Π² ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ (ΡΠΈΡ. 4.6).
Π ΠΈΡ. 4.6. ΠΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ» Π² Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΈ Π²Π΅ΡΡ Π½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ» Shortcuts (ΠΡΡΡΡΡΠΉ Π΄ΠΎΡΡΡΠΏ) Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π² Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ (ΡΠ°ΠΌ, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Check Spelling (ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠ°Π²ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ) ΠΈ Enable Caps Lock (ΠΠ°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ)) Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ: Double tapping the space bar will insert a period followed by a space (ΠΠ²ΠΎΠΉΠ½ΠΎΠ΅ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΏΡΠΎΠ±Π΅Π»Π° Π²ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΡΠΊΡ, Π·Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΎΠ±Π΅Π»). ΠΡΠΎ Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ» Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. ΠΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠΎΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ, Π° Π½Π΅ Π² Π²Π΅ΡΡ Π½Π΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Π΅, Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΉ, Π° Π½Π΅ ΠΊ Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠ°Π·Π΄Π΅Π»Π°. Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π²Π΅ΡΡ Π½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ», Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Shortcuts (ΠΡΡΡΡΡΠΉ Π΄ΠΎΡΡΡΠΏ). ΠΠ΄Π΅ΡΡ, Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ» ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π΅ΡΡ Π½ΠΈΠΌ, Π° Π½Π΅ Π½ΠΈΠΆΠ½ΠΈΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ ΠΊ Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠ°Π·Π΄Π΅Π»Π°.
ΠΠ»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π²ΡΡΠΎΡΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»ΠΎΠ² Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ UITableViewDataSource. Π§ΡΠΎΠ±Ρ Π·Π°Π΄Π°ΡΡ ΡΠ°ΠΌ Π²ΠΈΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π²Π΅ΡΡ Π½Π΅ΠΌΡ/Π½ΠΈΠΆΠ½Π΅ΠΌΡ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Ρ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠ΅ Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ UITableViewDelegate.
ΠΠ΄Π΅ΠΌ Π΄Π°Π»ΡΡΠ΅. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄. ΠΠΎΡΠΎΠΌ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π΄Π²Π΅ ΠΌΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠ° UILabel, ΠΎΠ΄Π½Π° Π±ΡΠ΄Π΅Ρ ΠΈΠ³ΡΠ°ΡΡ ΡΠΎΠ»Ρ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Π°, Π° Π΄ΡΡΠ³Π°Ρ β Π½ΠΈΠΆΠ½Π΅Π³ΠΎ Π² Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. ΠΡΠΎΡ ΡΠ°Π·Π΄Π΅Π» Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ Π²ΡΠ΅Π³ΠΎ ΡΡΠ΅ΠΌΡ ΡΡΠ΅ΠΉΠΊΠ°ΠΌΠΈ. Π Π²Π΅ΡΡ Π½Π΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Π΅ ΠΌΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ Section 1 Header (ΠΠ΅ΡΡ Π½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ» ΡΠ°Π·Π΄Π΅Π»Π° 1), Π° Π² Π½ΠΈΠΆΠ½Π΅ΠΌ β Section 1 Footer (ΠΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ» ΡΠ°Π·Π΄Π΅Π»Π° 1). ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΠ°ΠΉΠ»Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π²ΠΈΠ΄Π°, Π³Π΄Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄:
#import Β«ViewController.hΒ»
static NSString *CellIdentifier = @"CellIdentifier";
@interface ViewController () <UITableViewDelegate, UITableViewDataSource>
@property (nonatomic, strong) UITableView *myTableView;
@end
@implementation ViewController
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄ ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΠΌ Π² Π½Π΅Π³ΠΎ ΡΡΠΈ ΡΡΠ΅ΠΉΠΊΠΈ:
β (UITableViewCell *) tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier
forIndexPath: indexPath];
cell.textLabel.text = [[NSString alloc] initWithFormat:@"Cell %ld",
(long)indexPath.row];
return cell;
}
β (NSInteger) tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section{
return 3;
}
β (void)viewDidLoad{
[super viewDidLoad];
self.myTableView =
[[UITableView alloc] initWithFrame: self.view.bounds
style: UITableViewStyleGrouped];
[self.myTableView registerClass: [UITableViewCell class]
forCellReuseIdentifier: CellIdentifier];
self.myTableView.dataSource = self;
self.myTableView.delegate = self;
self.myTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight;
[self.view addSubview: self.myTableView];
}
Π ΡΡΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π²ΡΠΌΡ Π²Π°ΠΆΠ½ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ (ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΌΠΈ Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ UITableViewDelegate), ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΌΠ΅ΡΠΊΡ ΠΈ Π΄Π»Ρ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΈ Π΄Π»Ρ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Π° ΡΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΈΠ»ΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄. ΠΠΎΡ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ:
β’ tableView: viewForHeaderInSection: β ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° UIView. ΠΠΈΠ΄, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ, ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ ΠΊΠ°ΠΊ Π²Π΅ΡΡ Π½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ» ΡΠ°Π·Π΄Π΅Π»Π° ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·Π°Π½ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ viewForHeaderInSection;
β’ tableView: viewForFooterInSection: β ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° UIView. ΠΠΈΠ΄, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ, ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ ΠΊΠ°ΠΊ Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ» ΡΠ°Π·Π΄Π΅Π»Π° ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·Π°Π½ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ viewForFooterInSection.
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ Π²Π΅ΡΠ½ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ UILabel. ΠΠ° ΠΌΠ΅ΡΠΊΠ΅ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Π° ΠΌΡ ΡΠΊΠ°ΠΆΠ΅ΠΌ ΡΠ΅ΠΊΡΡ Section 1 Header (ΠΠ΅ΡΡ Π½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ» ΡΠ°Π·Π΄Π΅Π»Π° 1), Π° Π½Π° ΠΌΠ΅ΡΠΊΠ΅ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ β Section 1 Footer (ΠΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ» ΡΠ°Π·Π΄Π΅Π»Π° 1), ΠΊΠ°ΠΊ ΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π»ΠΈ:
β (UILabel *) newLabelWithTitle:(NSString *)paramTitle{
UILabel *label = [[UILabel alloc] initWithFrame: CGRectZero];
label.text = paramTitle;
label.backgroundColor = [UIColor clearColor];
[label sizeToFit];
return label;
}
β (UIView *) tableView:(UITableView *)tableView
viewForHeaderInSection:(NSInteger)section{
if (section == 0){
return [self newLabelWithTitle:@"Section 1 Header"];
}
return nil;
}
β (UIView *) tableView:(UITableView *)tableView
viewForFooterInSection:(NSInteger)section{
if (section == 0){
return [self newLabelWithTitle:@"Section 1 Footer"];
}
return nil;
}
ΠΡΠ»ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠΌΡΠ»ΡΡΠΎΡΠ΅, ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΡΠ°ΠΊΠ°Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°, ΠΊΠ°ΠΊ Π½Π° ΡΠΈΡ. 4.7.
Π ΠΈΡ. 4.7. ΠΠ΅ΡΠΊΠΈ Π΄Π»Ρ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»ΠΎΠ² ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, Π²ΡΡΠΎΠ²Π½Π΅Π½Π½ΡΠ΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ
ΠΡΠΈΡΠΈΠ½Π° ΡΠ°ΠΊΠΎΠ³ΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²ΠΈΠ΄ Π½Π΅ Π·Π½Π°Π΅Ρ Π²ΡΡΠΎΡΡ Π²ΠΈΠ΄ΠΎΠ²-ΠΌΠ΅ΡΠΎΠΊ. ΠΠ»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π²ΡΡΠΎΡΡ Π²ΠΈΠ΄ΠΎΠ² Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»ΠΎΠ² ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π²Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΡ Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ UITableViewDelegate:
β’ tableView: heightForHeaderInSection: β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠΈΠΏΡ CGFloat. ΠΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²ΡΡΠΎΡΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Π° ΡΠ°Π·Π΄Π΅Π»Π° ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. ΠΠ½Π΄Π΅ΠΊΡ ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ heightForHeaderInSection;
β’ tableView: heightForFooterInSection: β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠΈΠΏΡ CGFloat. ΠΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²ΡΡΠΎΡΡ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Π° ΡΠ°Π·Π΄Π΅Π»Π° ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. ΠΠ½Π΄Π΅ΠΊΡ ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ heightForHeaderInSection.
β (CGFloat) tableView:(UITableView *)tableView
heightForHeaderInSection:(NSInteger)section{
if (section == 0){
return 30.0f;
}
return 0.0f;
}
β (CGFloat) tableView:(UITableView *)tableView
heightForFooterInSection:(NSInteger)section{
if (section == 0){
return 30.0f;
}
return 0.0f;
}
ΠΠ°ΠΏΡΡΡΠΈΠ² ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠ΅ΡΠΊΠΈ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»ΠΎΠ² ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π²ΡΡΠΎΡΡ. ΠΠΎ Π² Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΌ Π½Π°ΠΌΠΈ ΠΊΠΎΠ΄Π΅ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ° β Π΄Π΅Π»ΠΎ Π² Π»Π΅Π²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΌΠ΅ΡΠΎΠΊ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»ΠΎΠ². Π ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, Π²Π·Π³Π»ΡΠ½ΡΠ² Π½Π° ΡΠΈΡ. 4.8.
Π ΠΈΡ. 4.8. ΠΠ΅Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΌΠ΅ΡΠΎΠΊ Π² Π²Π΅ΡΡ Π½Π΅ΠΌ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Π°Ρ β Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅
ΠΡΠΈΡΠΈΠ½Π° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΠ½ΡΠΉ Π²ΠΈΠ΄ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅Ρ Π²Π΅ΡΡ Π½ΠΈΠΉ ΠΈ Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Ρ Π² ΡΠΎΡΠΊΠ΅ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΎΠΉ 0.0f ΠΏΠΎ ΠΎΡΠΈ Π₯. ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΡΠΎΠ² ΠΌΠ΅ΡΠΎΠΊ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»ΠΎΠ², Π½ΠΎ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° UIView, Π³Π΄Π΅ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΌΠ΅ΡΠΊΠΈ Π΄Π»Ρ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»ΠΎΠ². ΠΠΎΠ·Π²ΡΠ°ΡΠΈΡΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ/Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»Π° ΡΠ°ΠΊΠΎΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ Π²ΠΈΠ΄, Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠΊ ΠΏΠΎ ΠΎΡΠΈ Π₯ Π² ΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅.
Π’Π΅ΠΏΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² tableView: viewForHeaderInSection: ΠΈ tableView: viewForFooterInSection::