我在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

最佳答案

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

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

关于cocoa-touch - UITableViewCell setSelected方法未调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22841119/

10-09 07:01