UITableViewCell setSelected方法未被调用

时间:2014-04-03 14:43:30

标签: cocoa-touch ios7 uitableview uistoryboard

我在iOS7上,并为我的UITableView带有静态单元格的UITableViewCell子类。我在实现中重写了setSelected方法。

由于某种原因,该方法仅在表加载时被调用,但在实际抽取和选择单元格时不会被调用。

我在这里做错了什么?我如何让它工作?

@implementation StudentMenuMultipleOptionsTableViewCell

- (void)setSelected:(BOOL)selected {
    [super setSelected:selected];
    if (selected) {
        UIView *view = [UIView new];
        view.backgroundColor = [UIColor colorWithRed:0.542 green:0.788 blue:0.060 alpha:1.000];
        self.selectedBackgroundView = view;
    }
    else {
        for (UIView *view in self.subviews) {
            if ([view isKindOfClass:[BlackBackgroundSelectedButton class]]) {
                BlackBackgroundSelectedButton *button = (BlackBackgroundSelectedButton *)view;
                button.selected = NO;
                [button setWhite];
            }
        }
    }
}

@end

ScreenShot

1 个答案:

答案 0 :(得分:39)

问题在于我使用的是setSelected方法。需要用于较新iOS版本的方法是:

- (void)setSelected:(BOOL)selected animated:(BOOL)animated;