自动调整大小很简单——把它想象成一个网页。Web 内容“流动”,它占用的空间与浏览器窗口提供的空间一样多。自动调整大小是一样的。有一些“掩码”告诉 UIKit 你希望你的内容如何适应不同的帧大小。
因此,例如,如果您希望视图从右侧缩小或扩大(例如,如果它是像表格单元格这样的左对齐内容),您可以像这样设置掩码:
cell.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;
自动调整大小也像按位或运算一样工作,因此如果您希望它从右侧增长(如上)但也从底部增长,您可以将两者“或”在一起。
cell.autoresizingMask = (UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin);
如果这对您不起作用(例如,您想在屏幕上放太多,需要删除某些元素等,或者您想以某种方式与默认设置不同的动画),请考虑使用预先存在的方法在 UITableViewCell 中调用。从文档中:
- (void)willTransitionToState:(UITableViewCellStateMask)state
这将在单元格更改状态(正常->编辑或其他)之前调用,因此如果您需要做一些特殊的事情来将动画处理到编辑状态,这是您这样做的机会。文档状态:
UITableViewCell 的子类可以实现此方法,以便在更改状态时对单元格的其他更改进行动画处理。每当单元格在状态之间转换时,UITableViewCell 都会调用此方法,例如从正常状态(默认)到编辑模式。自定义单元格可以设置和定位以新状态出现的任何新视图。然后单元格会收到一个 layoutSubviews 消息 (UIView),在该消息中,它可以将这些新视图定位在新状态的最终位置。重写此方法时,子类必须始终调用 super。重写此方法。