我已将子视图单元格子类化,并向自定义单元格添加了几个标签和图像。
[self.contentView addSubview:lblDesc];
[self.contentView addSubview:imagesToDisplay];
当我编辑tableView并按“ - ”符号时,删除按钮会出现在图像和其他内容的顶部。
其他一些应用程序会挤压单元格的内容以容纳删除按钮。
我该怎么做?
我是否需要添加键值Observer [cell addObserver:self forKeyPath:@“showingDeleteConfirmation” options:NSKeyValueObservingOptionNew context:NULL];
答案 0 :(得分:4)
自动化很简单 - 把它想象成一个网页。 Web内容“流动”,它占用了浏览器窗口提供的空间。自动化是一样的。有“面具”告诉UIKit你希望你的内容如何调整到不同的帧大小。
因此,例如,如果您希望视图从右侧收缩或增长(例如,如果它是左对齐的内容,如表格单元格),您可以像这样设置掩码:
cell.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;
自动调整也像按位运算一样工作,所以如果你想让它从右边(如上所述)增长,但也从底部增长,你就可以将两者“或”在一起。
cell.autoresizingMask = (UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin);
如果这对您不起作用(例如,您想在屏幕上放置太多,并且需要删除某些元素等,或者您想以某种方式设置不同于默认设置的动画),请考虑使用前在UITableViewCell中存在的方法调用。来自documentation:
- (void)willTransitionToState:(UITableViewCellStateMask)state
这将在单元格更改状态(正常 - >编辑或其他)之前调用,因此如果您需要执行任何特殊操作来处理动画到编辑状态,这是您的机会。文档声明:
UITableViewCell的子类可以 实现此方法来设置动画 对它进行额外的更改 正在改变状态。的UITableViewCell 每当一个单元格调用此方法 国家之间的转换,例如 从正常状态(默认)到 编辑模式。自定义单元格可以设置 向上并定位任何新观点 与新状态一起出现。细胞 然后收到layoutSubviews消息 (UIView)它可以定位 这些新观点在他们的决赛中 新州的位置。 子类必须始终调用super 重写此方法。覆盖此方法。
答案 1 :(得分:0)
您需要设置正确的autoresizingMask
,以便在contentView
更改尺寸时按钮正常移动。