Подтвердить что ты не робот

IPhone + UITableView + высота строки

Я устанавливаю высоту строки моего UITableView, используя следующий код

[tableView setRowHeight: 100.00];

Я использую одиночную строку как разделитель в UITableView.

Несмотря на то, что высота выше, высота строки не изменяется.

4b9b3361

Ответ 1

Вы должны реализовать

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

метод делегата. и верните 100.0.

Ответ 2

Вам следует избегать heightForRowAtIndexPath, если все ваши строки имеют одинаковую высоту и используют свойство rowHeight. Согласно документации:

Есть последствия для использования tableView: heightForRowAtIndexPath: вместо rowHeight. Каждый раз, когда отображается представление таблицы, он вызывает tableView: heightForRowAtIndexPath: в делегате для каждой из его строк, что может привести к значительной проблеме с представлением таблицы, имеющей большое количество строк (приблизительно 1000 или более).

В подклассе UITableViewController это можно сделать, например, в методе viewDidAppear (UITableViewController имеет ссылку на tableView):

self.tableView.rowHeight = 79.f;

Ответ 3

Высота строки выпекается в ячейках при их первом отображении.

Вы установили UITableView # rowHeight перед установкой источника данных?
Если нет, сделайте это.
Если по какой-либо причине вы не можете, другой вариант - вызывать UITableView # reloadData после установки высоты строки.

Ответ 4

Мне это понравилось, здесь tableobj - это не что иное, как UITableView объект в моем приложении.

- (void)viewDidLoad
{
    [super viewDidLoad];
    [tableObj setRowHeight:100.0f];
}

Или обрабатывайте его в numberOfRowsInSection: как:

- (NSInteger)tableView:(UITableView *)tblView numberOfRowsInSection:(NSInteger)section {
    [tableObj setRowHeight:100.0f];
    return [soandso count]; // soandso is my object
}

Потому что перед установкой источника данных установите rowHeight. Он работал у меня (для равных высот строк).

Ответ 5

Лучшее и более чистое решение - реализовать функцию делегата (возможно, не самый лучший, если ваш UITableView имеет много строк...).

Также подумайте, что UITableVieCell - это UIView, поэтому вы можете сначала изменить их высоту...

Делегаты очень мощны в iPhone dev, здесь UITableViewDelage:

http://developer.apple.com/iphone/library/documentation/uikit/reference/UITableViewDelegate_Protocol/Reference/Reference.html

Вы также можете изменить indentForRow, displayCellForRow, heightForRow, редактировать материал.....

Ответ 6

Я не думаю, что есть такой метод в UITableView...

Вместо этого вы можете использовать свойство rowHeight...
Пытаться, tableView.rowHeight = 100;