以编程方式在uitableview中设置静态单元格

jpo*_*jpo 7 static objective-c cells uitableview

我以编程方式在目标c中创建一个tableview.如何以编程方式使单元格静态?

谢谢

Mik*_*keS 15

以编程方式使单元格静态并不真正有意义.静态单元基本上仅用于Interface Builder,并且要求整个TableView是静态的.它们允许您将UILables,UITextFields,UIImageViews等直接拖动到单元格中,并让它在应用程序运行时显示它在Xcode中的外观.

但是,通过不使用外部数据源并对所有内容进行硬编码,您的单元格可以通过编程方式进行"静态"处理,这通常会有点混乱,通常是一个糟糕的想法.

我建议使用.xib创建一个新的UITableViewController,如果你想要"静态"单元格,可以从那里自定义它.否则,只需对所有值进行硬编码,它基本上是相同的,但如果可以避免则可能是糟糕的设计.

  • 我认为,如果您想避免使用 InterfaceBuilder,以编程方式创建任意数量的静态 tableview 单元格是完全可以接受的。想要尽量减少 InterfacerBuilder 的使用有很多正当理由。 (9认同)

Ric*_*mpo 9

通过为每个使用不同的单元格标识符,您将获得它.你可以使用这样的东西:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *cellIdentifier = [NSString stringWithFormat:@"s%i-r%i", indexPath.section, indexPath.row];
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease];
        //you can customize your cell here because it will be used just for one row.
    }

    return cell;
}
Run Code Online (Sandbox Code Playgroud)