2014-04-03 173 views
0

我在iOS7故事板中使用静态单元格。单元格中有UIButtons,它们依次调用“selectRowAtIndexPath”方法。UITableView selectedBackgroundView不覆盖整个单元格

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 

回答

0

非常棘手。

您需要确保您没有对多个单元格使用相同的UIView。只要使用过一次,视图就会调整大小,并会造成尺寸问题。

的解决方案是创建一个单独的背景视图对每个小区像这样:

enter image description here