Ipad UITableView Selected背景视图未覆盖整个单元格

Ipad UITableView Selected背景视图未覆盖整个单元格,ipad,cocoa-touch,uitableview,ios7,uistoryboard,Ipad,Cocoa Touch,Uitableview,Ios7,Uistoryboard,我在iOS7故事板中使用静态单元格。单元格中有UIButton,它们依次调用“selectRowAtIndexPath”方法 这不是一个一致的行为,只有当我在单元格之间切换时才会发生 这里有问题的两个单元格有一个共同的超类。代码如下: @implementation StudentMenuMultipleOptionsTableViewCell - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super s

我在iOS7故事板中使用静态单元格。单元格中有UIButton,它们依次调用“selectRowAtIndexPath”方法

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

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

@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
相当棘手

您需要确保对多个单元格不使用相同的UIView。视图使用一次后会立即调整大小,这会造成大小问题

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