我想将我个人创建tag
的 a设置为in ,或指示我是否应该将其子视图放置在左侧或右侧。这样做安全吗,还是苹果会弄乱这个单元格标签的值?我知道我可以为每种类型的单元格使用单独的单元格标识符,但是除了子视图的定位和一些颜色之外,两个单元格几乎相同。(我正在使用聊天气泡重新创建本机消息应用程序。)UITableViewCell
initWithStyle:reuseIdentifier:
tableView:cellForRowAtIndexPath:
0
1
4 回答
虽然您当然可以使用标签,但我绝对建议您更加明确。几个月后,当您查看您的代码时,您会帮自己一个忙。我将创建一个自定义UITableViewCell
子类,该子类具有contentAlignment
您可以显式设置为left
or的属性right
。(ab)使用单元格的标签将更具可读性。
像这样的东西:
typedef NS_ENUM(NSUInteger, MyTableViewCellContentAlignment) {
MyTableViewCellContentAlignmentLeft,
MyTableViewCellContentAlignmentRight
};
@interface MyTableViewCell : UITableViewCell
@property (assign, nonatomic) enum MyTableViewCellContentAlignment contentAlignment;
@end
享受。
没关系,但是设置标签的更好地方是tableView:willDisplayCell:forRowAtIndexPath:
UITableViewDelegate 的方法。根据文档:
表格视图在使用单元格绘制一行之前将此消息发送给其委托人,从而允许委托人在单元格对象显示之前对其进行自定义。此方法使委托有机会覆盖先前由表视图设置的基于状态的属性,例如选择和背景颜色。委托返回后,表格视图仅设置 alpha 和 frame 属性,然后仅在为滑入或滑出的行设置动画时。
UITableViewCell
将's(或任何UIView
's)标签设置为您想要的任何值是绝对安全的。没有人(包括 Apple)会在您的应用程序控制之外乱用这个标签的值。
我觉得给UITableViewCell
个tag
. Interface Builder 让您可以做到这一点。尽管如此,对此感到不安是可以理解的。通常,您会为要通过addSubview:
. 但是,想想看。如果 Apple 弄乱了视图控制器中任何视图标签的值view
,那么这可能会破坏类似[self.view viewWithTag:TEXT_FIELD_TAG]
. 所以,我怀疑他们会。我曾经听说 Apple 保留标记整数 <= 10,因此,您应该使用大于 10 的整数作为标记值,但我不明白这怎么可能是真的。