自动调整很简单 - 想象它就像一个网页。网页内容“流动”,它占用了浏览器窗口给它的空间。 Autoresizing是一样的。有“口罩”告诉UIKit你的内容如何适应不同的帧大小。例如,如果您希望视图从右侧缩小或增长(例如,如果它是左对齐的内容,如表格单元格),则可以像这样设置遮罩:
cell.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;
也自动调整大小就像一个按位或运算,所以如果你想让它从右边长(如上所述),而且还从底部,你会“或”两个共同成长。
cell.autoresizingMask = (UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin);
在,这并不为你工作的情况下(例如,你希望把太多的屏幕上,并且需要删除某些元素等,或要动画比默认不知何故不同)考虑在UITableViewCell中使用预先存在的方法调用。从documentation:
- (void)willTransitionToState:(UITableViewCellStateMask)state
这将被称为细胞改变状态前右(正>编辑或其他),所以如果你需要做任何特殊处理动画编辑状态,这是你这样做的机会。的文档状态:
的UITableViewCell的
子类可以 实现此方法,以动画时,它 正在改变状态的单元附加 变化。每当单元格 在状态之间转换时,如 从正常状态(默认)到 编辑模式,UITableViewCell 都会调用此方法。自定义单元格可以设置为 并定位 以新状态显示的任何新视图。然后,单元格 接收layoutSubviews消息 (UIView),其中它可以将这些新视图定位在它们在新状态的最终 位置中的 。 当覆盖此方法时,子类必须始终调用超类。覆盖此方法。
好,所以这需要我做“脏”的工作。我不想用这个,因为我有7种不同类型的细胞,所以我不得不做很多定制。但如果一切都失败了,我会再看看它。但是,如果你能够对autoresizingMask“途径”进行一些阐述,那将会很好。它不适合我。 – 2010-10-12 13:47:29
我添加了更多关于自动调整的信息。另外,请尝试查看Apple的AdvancedTableCells示例代码 - http://developer.apple.com/library/ios/samplecode/AdvancedTableViewCells/Introduction/Intro.html#//apple_ref/doc/uid/DTS40009111 – makdad 2010-10-13 08:36:00
嘿谢谢autoresizing的东西,我想我需要使用你的第一个解决方案本身,很多杂乱的表格单元格。 – 2010-10-13 11:28:29