【发布时间】:2014-03-03 01:01:42
【问题描述】:
我正在尝试将我的子视图放在前面,因为删除按钮一直消失。
@implementation MyCell : UITableViewCell
- (void)layoutSubviews
{
[super layoutSubviews];
for (UIView *subview in self.subviews) {
for (UIView *subview2 in subview.subviews) {
NSLog(@"HERE!");
if ([NSStringFromClass([subview2 class]) isEqualToString:@"UITableViewCellDeleteConfirmationView"]) {
NSLog(@"got inside the if!");
[subview2 sendSubviewToBack:subview];
[subview bringSubviewToFront:subview2];
[self.superview bringSubviewToFront:subview2];
}
}
}
}
@end
我继承了 UITableViewCell。两个 NSLog 都在打印,所以我知道它已经进入了那里,但是我已经尝试了所有 3 种方法来将视图放在前面。任何想法为什么这不起作用?
【问题讨论】:
-
您需要将所有自定义单元格的自定义视图放在单元格的
self.contentView中,而不是直接放在self中。 -
改为喜欢这个
[self.contentview sendSubviewToBack:subview];[self.contentview bringSubviewToFront:subview2];[self.contentview bringSubviewToFront:subview2];? -
没有。添加子视图时,将它们添加到
contentView。那么这些代码都不需要了。 -
摆脱这个
layoutSubviews方法。你不需要它。使用您将子视图添加到此自定义单元格的代码更新您的问题。 -
我从不添加子视图,我只是将样式设置为编辑。
标签: ios objective-c uitableview