Ячейка UITableView с размером индекса 0 - PullRequest
0 голосов
/ 14 февраля 2012

Каков наилучший способ настроить первую ячейку в таблице так, чтобы она отображалась как приложение Netflix (т. Е. Больше / больше)? Для удобства использования в будущем меня попросили максимально использовать IB, чтобы упростить дальнейшее редактирование.

Вот фотография таблицы Netflix. http://cl.ly/3j1d473d1j160502160t

Ответы [ 3 ]

3 голосов
/ 14 февраля 2012

Используйте представление заголовка таблицы. Перетащите представление в верхнюю часть представления таблицы, и оно станет «представлением заголовка таблицы».

Если у вас есть другие такие «ячейки», которые по существу постоянны (и могут быть включены / выключены), вы можете рассмотреть возможность помещения UITableViewCell объектов в ваш xib и возврата их из метода делегата tableView:cellForRowAtIndexPath:. Также реализуйте метод tableView:heightForRowAtIndexPath:.

Оба могут иметь одинаковую общую схему, например:

-(UITableViewCell*)tableView:(UITableView*)tv cellForRowAtIndexPath:(NSIndexPath*)ip
{
    if ( ip.section==0 ) return headerCell;
    // ...handle regular cells
}

-(CGFloat)tableView:(UITableView*)tv heightForRowAtIndexPath:(NSIndexPath*)ip
{
    if ( ip.section==0 ) return headerCell.frame.size.height;
    // ...handle regular cells
    return 44;
}
1 голос
/ 14 февраля 2012

Либо сделайте его чем-то, что не является ячейкой (например, представление заголовка таблицы), либо добавьте -[UITableViewDelegate tableView:heightForRowAtIndexPath:], чтобы получить другую высоту. Вы можете использовать IB для установки заголовка таблицы, но более сложные способы решения этой проблемы потребуют работы в коде.

0 голосов
/ 14 февраля 2012

Вот фрагмент кода, который вы можете использовать. Это представление заголовка таблицы ...

- (UIView *) tableView: (UITableView *) tableView viewForHeaderInSection: (NSInteger) раздел {

 if(section==0){ UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableview.frame.size.width, 44)];
[view setBackgroundColor:[UIColor redColor]]; UILabel
*label=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 44)]; 
[label setText:@"Hello!!"];
[label setBackgroundColor:[UIColor clearColor]]; 
[view addSubview:label]; return view; 
 }return nil;

} Здесь Вы можете установить высоту для tableViewHeaderSection.

  • (CGFloat) tableView: (UITableView *) tableView heightForHeaderInSection: (NSInteger) раздел {

    возврат 100; }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...