0

我想将我个人创建tag的 a设置为in ,或指示我是否应该将其子视图放置在左侧或右侧。这样做安全吗,还是苹果会弄乱这个单元格标签的值?我知道我可以为每种类型的单元格使用单独的单元格标识符,但是除了子视图的定位和一些颜色之外,两个单元格几乎相同。(我正在使用聊天气泡重新创建本机消息应用程序。)UITableViewCellinitWithStyle:reuseIdentifier:tableView:cellForRowAtIndexPath:01

4

4 回答 4

3

虽然您当然可以使用标签,但我绝对建议您更加明确。几个月后,当您查看您的代码时,您会帮自己一个忙。我将创建一个自定义UITableViewCell子类,该子类具有contentAlignment您可以显式设置为leftor的属性right。(ab)使用单元格的标签将更具可读性。

像这样的东西:

typedef NS_ENUM(NSUInteger, MyTableViewCellContentAlignment) {
    MyTableViewCellContentAlignmentLeft,
    MyTableViewCellContentAlignmentRight
};

@interface MyTableViewCell : UITableViewCell

@property (assign, nonatomic) enum MyTableViewCellContentAlignment contentAlignment;

@end

享受。

于 2013-10-17T20:41:24.183 回答
1

没关系,但是设置标签的更好地方是tableView:willDisplayCell:forRowAtIndexPath:UITableViewDelegate 的方法。根据文档:

表格视图在使用单元格绘制一行之前将此消息发送给其委托人,从而允许委托人在单元格对象显示之前对其进行自定义。此方法使委托有机会覆盖先前由表视图设置的基于状态的属性,例如选择和背景颜色。委托返回后,表格视图仅设置 alpha 和 frame 属性,然后仅在为滑入或滑出的行设置动画时。

于 2013-10-17T20:01:19.203 回答
1

UITableViewCell将's(或任何UIView's)标签设置为您想要的任何值是绝对安全的。没有人(包括 Apple)会在您的应用程序控制之外乱用这个标签的值。

于 2013-10-17T20:05:33.897 回答
0

我觉得给UITableViewCelltag. Interface Builder 让您可以做到这一点。尽管如此,对此感到不安是可以理解的。通常,您会为要通过addSubview:. 但是,想想看。如果 Apple 弄乱了视图控制器中任何视图标签的值view,那么这可能会破坏类似[self.view viewWithTag:TEXT_FIELD_TAG]. 所以,我怀疑他们会。我曾经听说 Apple 保留标记整数 <= 10,因此,您应该使用大于 10 的整数作为标记值,​​但我不明白这怎么可能是真的。

于 2013-10-17T19:54:10.600 回答