UITableView selectedBackgroundView不覆盖整个单元格

时间:2014-04-03 15:36:20

标签: ipad cocoa-touch uitableview ios7 uistoryboard

我在iOS7故事板中使用静态单元格。单元格中包含UIButtons,然后又调用“selectRowAtIndexPath”方法。

enter image description here

enter image description here

这不是一致行为,只有当我在单元格之间切换时才会发生。

这里有问题的两个单元有一个共同的超类。这是代码:

@implementation StudentMenuMultipleOptionsTableViewCell

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];

    if (!selected) {
        for (UIView *view in self.contentView.subviews) {
            if ([view isKindOfClass:[BlackBackgroundSelectedButton class]]) {
                BlackBackgroundSelectedButton *button = (BlackBackgroundSelectedButton *)view;
                button.selected = NO;
                [button setWhite];
            }
        }
    }
}

@end

1 个答案:

答案 0 :(得分:0)

非常棘手。

您需要确保没有为多个单元格使用相同的UIView。一旦使用一次,视图就会调整大小,并会产生尺寸问题。

解决方案是为每个单元创建一个单独的背景视图,如下所示:

enter image description here