创建表视图样式UITableViewStyle自定义

时间:2015-03-16 11:18:20

标签: ios objective-c uitableview

众所周知,UITableViewCell很容易初始化:

cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];

但是如何创建自己的表视图样式定义" UITableViewCellStyleCustom"?

3 个答案:

答案 0 :(得分:0)

有几个解决方案:

  1. 您在故事板上制作自己的自定义单元格原型。这是创建自定义单元格的快速方法,没有太多麻烦。如果我没有记错,这在NIB中是不可用的。
  2. 在NIB中创建您的Cell。
  3. 在这两种方法中,您必须继承UITableViewCell的子类并添加您想要的行为。您还需要在Storyboard或Nib上指定您希望该单元格具有您刚刚创建的子类的类型。网上有很多关于如何做的教程。

答案 1 :(得分:0)

首先,您需要子类UITableViewCell来获取自定义单元格。

在代码中初始化时(为什么?),只需在指定的初始值设定项中使用UITableViewCellStyleDefault作为style参数。我建议通过故事板或界面生成器初始化单元格。

答案 2 :(得分:0)

正如其他答案已经指出的那样,有很多关于如何创建自己的单元格样式的教程。

但是,请记住,创建表格视图单元格的首选方法是重用tableView:cellForRowAtIndexPath:中的一个,如下所示:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myIdentifier" forIndexPath:indexPath];

修改

如果要实现自己的initWithStyle:reuseIdentifier:版本,显然可以创建自己的单元格样式,例如:

typedef NS_ENUM(NSInteger, MyTableViewCellStyle){
    MyTableViewCellStyleFile,
    MyTableViewCellStyleFolder
};

然后你可以像这样定义一个自定义的init方法:

-(instancetype)initWithMyStyle:(MyTableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier;

除此之外,UITableViewCellStyleDefault是UIKit中枚举UITableViewCellStyle的一部分。所以它基本上只是一个整数值,传递一个不同于定义的值将无法在默认的init方法中工作。