索引0大小的UITableView单元格

时间:2012-02-13 23:01:17

标签: iphone objective-c ios xcode interface-builder

自定义表格中的第一个单元格以显示Netflix应用程序(即更大/不同)的最佳方法是什么?为了便于将来使用,我被要求尽可能使用IB,以便日后编辑。

这是Netflix表的照片。 http://cl.ly/3j1d473d1j160502160t

3 个答案:

答案 0 :(得分:3)

使用表格标题视图。将视图拖到表视图的顶部,它将成为“表标题视图”。

如果你有其他基本上不变的“单元格”(并且可能打开/关闭)你可以考虑在你的xib中放置UITableViewCell个对象,并从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 :(得分:1)

要么使它不是单元格(如表格的标题视图),要么实现-[UITableViewDelegate tableView:heightForRowAtIndexPath:]以返回不同的高度。您可以使用IB来安装表头,但攻击此问题的更复杂方法将需要在代码中工作。

答案 2 :(得分:0)

以下是您可以使用的代码段。它是表格的标题视图...

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {

 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)section {

    返回100; }