Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«iOS. ΠŸΡ€ΠΈΠ΅ΠΌΡ‹ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 50

Автор Π’Π°Π½Π΄Π°Π΄ Нахавандипур

cell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier

forIndexPath: indexPath];


cell.textLabel.text = [[NSString alloc]

initWithFormat:@"Section %ld Cell %ld",

(long)indexPath.section,

(long)indexPath.row];


return cell;


}


β€” (void)viewDidLoad{

[super viewDidLoad];


self.myTableView = [[UITableView alloc]

initWithFrame: self.view.bounds

style: UITableViewStylePlain];

[self.myTableView registerClass: [UITableViewCell class]

forCellReuseIdentifier: CellIdentifier];


self.myTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth |

UIViewAutoresizingFlexibleHeight;


self.myTableView.dataSource = self;

self.myTableView.delegate = self;


[self.view addSubview: self.myTableView];


}


Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Ρ‚Ρ€ΠΈ упомянутых Ρ€Π°Π½Π΅Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ UITableViewDelegate, ΠΈ просто ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ доступныС дСйствия (Ρ‚ΠΈΠΏΠ° SEL) Π² строку, послС Ρ‡Π΅Π³ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ доступныС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π½Π° консоль:


β€” (BOOL) tableView:(UITableView *)tableView

shouldShowMenuForRowAtIndexPath:(NSIndexPath *)indexPath{


/* Π Π°Π·Ρ€Π΅ΡˆΠ°Π΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ контСкстного мСню для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйки */

return YES;


}


β€” (BOOL) tableView:(UITableView *)tableView

canPerformAction:(SEL)action

forRowAtIndexPath:(NSIndexPath *)indexPath

withSender:(id)sender{


NSLog(@"%@", NSStringFromSelector(action));


/* ΠŸΠΎΠΊΠ° Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌ Π»ΡŽΠ±Ρ‹Π΅ дСйствия. */

return YES;

}


β€” (void) tableView:(UITableView *)tableView

performAction:(SEL)action

forRowAtIndexPath:(NSIndexPath *)indexPath

withSender:(id)sender{


/* ΠŸΠΎΠΊΠ° оставим пустым. */


}


А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ запустим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² эмуляторС ΠΈΠ»ΠΈ Π½Π° устройствС. ПослС этого ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ Ρ‚Ρ€ΠΈ ячСйки. Π£Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ Π½Π° ячСйкС ΠΏΠ°Π»Π΅Ρ† (Ссли Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с устройством) ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ (Ссли с эмулятором) ΠΈ смотритС, какая информация появляСтся Π² ΠΎΠΊΠ½Π΅ консоли:


cut:

copy:

select:

selectAll:

paste:

delete:

_promptForReplace:

_showTextStyleOptions:

_define:

_addShortcut:

_accessibilitySpeak:

_accessibilitySpeakLanguageSelection:

_accessibilityPauseSpeaking:

makeTextWritingDirectionRightToLeft:

makeTextWritingDirectionLeftToRight:


ВсС это дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ систСма iOS позволяСт вывСсти Π½Π° экран для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ссли Ρ‚Π°ΠΊΠΈΠ΅ дСйствия Π²Π°ΠΌ понадобятся. Допустим, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ копирования (Copy). Для этого ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ просто Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ tableView: canPerformAction: forRowAtIndexPath: withSender:, Π½Π° ΠΊΠ°ΠΊΠΎΠ΅ дСйствиС Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρƒ вас Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ систСма iOS, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ YES ΠΈΠ»ΠΈ NO:


β€” (BOOL) tableView:(UITableView *)tableView

canPerformAction:(SEL)action

forRowAtIndexPath:(NSIndexPath *)indexPath

withSender:(id)sender{


if (action == @selector(copy:)){

return YES;

}


return NO;

}


На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ этапС ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ элСмСнт Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² контСкстном мСню. Π’ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ выяснится, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎΠ΅ дСйствиС. НапримСр, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ Π² контСкстном мСню ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Copy (ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ) (рис. 4.11), ΠΌΡ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ UIPasteBoard, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту ячСйку Π² ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€ ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π΅ ΠΏΠΎΠ·ΠΆΠ΅:


β€” (void) tableView:(UITableView *)tableView

performAction:(SEL)action

forRowAtIndexPath:(NSIndexPath *)indexPath

withSender:(id)sender{


if (action == @selector(copy:)){


UITableViewCell *cell = [tableView cellForRowAtIndexPath: indexPath];

UIPasteboard *pasteBoard = [UIPasteboard generalPasteboard];

[pasteBoard setString: cell.textLabel.text];


}


}


Рис. 4.11. Команда Copy (ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ), отобраТСнная Π² контСкстном мСню ячСйки Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°

4.7. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ячССк ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²ΠΈΠ΄Π°Ρ…

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

ВрСбуСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΈ Ρ‚Π°ΡΠΎΠ²Π°Ρ‚ΡŒ ячСйки ΠΈ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, сопровоТдая вСсь процСсс ΠΏΠ»Π°Π²Π½ΠΎΠΉ ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятной Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠ΅ΠΉ.

РСшСниС

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ moveSection: toSection: Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» Π½Π° Π½ΠΎΠ²ΠΎΠ΅ мСсто. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ moveRowAtIndexPath: toIndexPath:, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ячСйку Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Π½Π° Π½ΠΎΠ²ΠΎΠ΅ мСсто с Ρ‚ΠΎΠ³ΠΎ мСста, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ½Π° сСйчас Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚.

ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΎΡ†Π΅ΡΡ пСрСмСщСния Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ ячССк Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ отличаСтся ΠΎΡ‚ ΠΈΡ… Π·Π°ΠΌΠ΅Π½Ρ‹. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΠΉ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ эту Ρ€Π°Π·Π½ΠΈΡ†Ρƒ. Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄ с трСмя Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌΠΈ, A, B ΠΈ C. Если ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» A ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ C, Ρ‚ΠΎ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ это ΠΈ пСрСмСстит Ρ€Π°Π·Π΄Π΅Π» B Ρ‚ΡƒΠ΄Π°, Π³Π΄Π΅ Π΄ΠΎ этого находился Ρ€Π°Π·Π΄Π΅Π» A. Но Ссли Ρ€Π°Π·Π΄Π΅Π» B Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ Π½Π° мСсто Ρ€Π°Π·Π΄Π΅Π»Π° C, Ρ‚ΠΎ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ придСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» A, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ находится Β«Π²Ρ‹ΡˆΠ΅Β» Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ Π½Π΅ участвуСт Π² пСрСдвиТСниях B ΠΈ C. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Ρ€Π°Π·Π΄Π΅Π» B ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚ Π½Π° мСсто Ρ€Π°Π·Π΄Π΅Π»Π° C, Π° Ρ€Π°Π·Π΄Π΅Π» C β€” Π½Π° мСсто Ρ€Π°Π·Π΄Π΅Π»Π° B. Вакая ΠΆΠ΅ Π»ΠΎΠ³ΠΈΠΊΠ° примСняСтся Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²ΠΈΠ΄Π°Ρ… ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ячССк.

Для дСмонстрации Ρ‚Π°ΠΊΠΈΡ… взаимодСйствий создадим Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄ ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ Π² Π½Π΅Π³ΠΎ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π°, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ собствСнныС ячСйки. НачнСм с Ρ„Π°ΠΉΠ»Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π²ΠΈΠ΄Π°:


#import Β«ViewController.hΒ»


static NSString *CellIdentifier = @"CellIdentifier";


@interface ViewController () <UITableViewDelegate, UITableViewDataSource>

@property (nonatomic, strong) UITableView *myTableView;

@property (nonatomic, strong) NSMutableArray *arrayOfSections;

@end


ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π²ΠΈΠ΄Π° становится источником Π΄Π°Π½Π½Ρ‹Ρ… для Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. Π’ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Ρ‹, Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ β€” ячСйки. ΠœΡ‹, Π² сущности, Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с массивом массивов: массив ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ порядка содСрТит Ρ€Π°Π·Π΄Π΅Π»Ρ‹, Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π», Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, являСтся массивом, содСрТащим ячСйки. ΠžΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π·Π° этот Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π±ΡƒΠ΄Π΅Ρ‚ элСмСнт arrayOfSections, опрСдСляСмый Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π²ΠΈΠ΄Π°. Π˜Ρ‚Π°ΠΊ, Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ этот массив:


β€” (NSMutableArray *) newSectionWithIndex:(NSUInteger)paramIndex

withCellCount:(NSUInteger)paramCellCount{


NSMutableArray *result = [[NSMutableArray alloc] init];


NSUInteger counter = 0;

for (counter = 0;

counter < paramCellCount;

counter++){


[result addObject: [[NSString alloc] initWithFormat:@"Section %lu

Cell %lu",

(unsigned long)paramIndex,

(unsigned long)counter+1]];


}


return result;


}


β€” (NSMutableArray *) arrayOfSections{

if (_arrayOfSections == nil){

NSMutableArray *section1 = [self newSectionWithIndex:1

cellCount:3];

NSMutableArray *section2 = [self newSectionWithIndex:2

cellCount:3];

NSMutableArray *section3 = [self newSectionWithIndex:3

cellCount:3];

_arrayOfSections = [[NSMutableArray alloc] initWithArray:@[

section1,

section2,

section3

]

];

}

return _arrayOfSections;

}


Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ инстанцируСм Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ UITableViewDataSource, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ:


β€” (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView{


return self.arrayOfSections.count;


}


β€” (NSInteger) tableView:(UITableView *)tableView

numberOfRowsInSection:(NSInteger)section{


NSMutableArray *sectionArray = self.arrayOfSections[section];

return sectionArray.count;


}


β€” (UITableViewCell *) tableView:(UITableView *)tableView

cellForRowAtIndexPath:(NSIndexPath *)indexPath{


UITableViewCell *cell = nil;


cell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier

forIndexPath: indexPath];


NSMutableArray *sectionArray = self.arrayOfSections[indexPath.section];


cell.textLabel.text = sectionArray[indexPath.row];


return cell;


}


β€” (void)viewDidLoad{

[super viewDidLoad];


self.myTableView =

[[UITableView alloc] initWithFrame: self.view.bounds

style: UITableViewStyleGrouped];


[self.myTableView registerClass: [UITableViewCell class]

forCellReuseIdentifier: CellIdentifier];


self.myTableView.autoresizingMask =

UIViewAutoresizingFlexibleWidth |

UIViewAutoresizingFlexibleHeight;


self.myTableView.delegate = self;

self.myTableView.dataSource = self;


[self.view addSubview: self.myTableView];


}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим, Ρ‡Ρ‚ΠΎ получаСтся. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π½Π° Π½ΠΎΠ²ΠΎΠ΅ мСсто. НапишСм ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» 1 Π½Π° мСсто Ρ€Π°Π·Π΄Π΅Π»Π° 3: