I am using static cells in iOS7 storyboard. The cells have UIButtons in it and they in-turn call the "selectRowAtIndexPath" method.

enter image description here

enter image description here

This is not a consistent behavior and happens only when I switch between the cells.

The two cells here that have the problem have a common superclass. Here's the code:

@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
有帮助吗?

解决方案

Quite tricky.

You need to make sure that you are not using the same UIView for multiple cells. The view is resized as soon as it's used once and will create problem with the sizes.

The solution is to create a separate background view for each cell like so:

enter image description here

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top