Има ли все пак да се създаде UITableView с един универсален долен колонтитул?

Опитвам се да създам UITableView с множество секции. Всеки раздел има своя собствена заглавка, но аз се опитвам да направя универсален долен колонтитул за целия изглед на таблицата, който остава на една позиция...

Възможна ли е тази логика при използване на методите UITableViewDelegate? Или трябва да създам персонализиран изглед и просто да опитам да го добавя като подизглед към моя изглед на таблица? Долният колонтитул, който имам в момента, съдържа UIButton.

Ако някой има примерен код, ще е страхотно.

Редактиране: Този въпрос не е същият като посочения. Опитвам се да направя универсален долен колонтитул, който плава над UITableView. В другия въпрос не се уточнява мястото на долния колонтитул, а само че се желае долния колонтитул.


person Johnny Gamez    schedule 26.02.2013    source източник
comment
Какво вече опитахте?   -  person Nathan White    schedule 26.02.2013
comment
Просто имплементирайте tableView:titleForFooterInSection и игнорирайте параметъра section.   -  person Matthias    schedule 26.02.2013
comment
Матиас, който би поставил долен колонтитул след всеки раздел.   -  person John    schedule 26.02.2013
comment
@NathanWhite - Точно сега имам добавен изглед с помощта на - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section   -  person Johnny Gamez    schedule 27.02.2013
comment
Реших проблема си и ще се радвам да споделя кода, но въпросът е маркиран като дубликат.   -  person Johnny Gamez    schedule 27.02.2013
comment
Все пак можете да редактирате въпроса си, нали? По този начин можете да включите вашето решение в самия въпрос.   -  person tom redfern    schedule 27.02.2013
comment
@hugh - Да, редактирах въпроса и те го демаркираха като дубликат. Публикувах решението по-долу.   -  person Johnny Gamez    schedule 28.02.2013


Отговори (2)


прочетете за свойството tableFooterView на UITableView.

А сега малко код: (използвайки ARC)

UILabel *footer = [UILabel alloc] init];
footer.text = @"Some text" ;
footer.backgroundColor = [UIColor greenColor];
self.tableView.tableFooterView = footer;

Сега в долната част на целия табличен изглед има UILabel, който е зелен с малко текст.

person John    schedule 26.02.2013
comment
Това е почти това, което търся... Опитах това и добави долен колонтитул в най-долната част на изгледа на таблицата. Бих искал долният колонтитул да остане плаващ в същата позиция (точно над UITabBarController селекциите. Моят табличен изглед най-вероятно ще има 3-4 секции с 5-10 реда във всяка секция, така че не искам потребителят да трябва да превърта през всички тези глупости, когато трябва да докоснат UIButton, за да преминат към следващия изглед. - person Johnny Gamez; 27.02.2013
comment
Не знам как да направя това с метода, който ви дадох. Мисля, че ще трябва да оформите нещо в код или IB. Изглед на цял екран, който съдържа изглед на таблица и UIView, заключен в долната част на FullScreeView. След това масата ще бъде настроена да побере останалата част от зоната. - person John; 27.02.2013

В крайна сметка създадох подизглед и добавих моя бутон към този изглед. След това направих този изглед мой "долен колонтитул".

Ето кода, който ми даде желаните резултати.

- (void)viewDidLoad
{

[super viewDidLoad];

//self.tableView.delegate = self;
//self.tableView.dataSource = self;

//save current tableview, then replace view with a regular uiview
self.tableView = (UITableView*)self.view;
UIView *replacementView = [[UIView alloc] initWithFrame:self.tableView.frame];
self.view = replacementView;
[self.view addSubview:self.tableView];

UIView *footerView  = [[UIView alloc] initWithFrame:CGRectMake(0, 370, 320, 45)];

//create the button
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
//button.userInteractionEnabled = YES;

//the button should be as big as a table view cell
//width of the button can be set but the width of the view it is added to will always match the width of the tableView
[button setFrame:CGRectMake(60, 0, 200, 45)]; 

//set title, font size and font color
[button setTitle:@"Build" forState:UIControlStateNormal];
[button.titleLabel setFont:[UIFont boldSystemFontOfSize:20]];   
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

//set action of the button
[button addTarget:self action:@selector(buildThenSegue)
 forControlEvents:UIControlEventTouchUpInside];

//add the button to the view
[footerView addSubview:button];
footerView.userInteractionEnabled = YES;

[self.view addSubview:footerView];
self.tableView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);

}

Обърнете внимание, че това е в подклас на UITableViewController.

Посочих този отговор на друг въпрос: https://stackoverflow.com/a/9084267/1091868

person Johnny Gamez    schedule 28.02.2013