我的一个项目中存在问题。我在图片中有一个tableview。我的问题是我的自定义单元格背景与UITableView删除按钮重叠。请任何人帮我把它带到前面。
我使用了以下代码,但有些开发人员说如果我们使用该代码,Apple可能拒绝您的应用
- (void)layoutSubviews
{
[super layoutSubviews];
for (UIView *subview in self.subviews) {
for (UIView *subview2 in subview.subviews) {
//NSLog(@"confirm is %@",[subview2 class]);
if ([NSStringFromClass([subview2 class]) isEqualToString:@"UITableViewCellDeleteConfirmationView"])
{
// move delete confirmation view
[subview bringSubviewToFront:subview2];
} else if ([NSStringFromClass([subview2 class]) isEqualToString:@"_UITableViewCellActionButton"])
{
[subview bringSubviewToFront:subview2];
}
}
}
}
另一个问题是以下代码仅适用于iOS 7,但在iOS 8中无效。
- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath;
方法设置为YES,我没有问题,但我们不想缩进。任何想法都可能非常有用。
答案 0 :(得分:9)
iOS 7和iOS 8中UITableViewCell
子视图的层次结构不同,请尝试我的解决方案。
- (void)layoutSubviews {
[super layoutSubviews];
for (UIView *subview in self.subviews) {
// for iOS 8
if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationView"]) {
[self bringSubviewToFront:subview];
return;
}
// for iOS 7
for (UIView *subview2 in subview.subviews) {
if ([NSStringFromClass([subview2 class]) isEqualToString:@"UITableViewCellDeleteConfirmationView"]) {
[subview bringSubviewToFront:subview2];
return;
}
}
}
}
答案 1 :(得分:1)
您需要在contentView中添加一个按钮,而不是直接向单元格视图添加