突出显示时,创建的TableViewCell边框消失

时间:2018-12-04 11:27:07

标签: objective-c xcode uitableview

我在这个论坛上发现了一种方法,该方法可以从视图的以太侧创建边框,当它在cellForRowAtIndexPath中创建时,我将其应用于单元格中的标签

问题是,当我选择创建的行的单元格消失时,当我取消选择该单元格时,我可以再次看到该行。

当选择单元格时,我遇到了一个问题,单元格中的标签文本颜色变为白色,但是您使用setSelected方法修复了此问题,可以帮助我在选择之前保存单元格标签颜色。问题是它的工作方式相同

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
    [self saveTextColors];
    [self saveLeftBoarders];
}

- (void)saveLeftBoarders {
    [self addLeftBorderWithColor:[UIColor grayColor]  Width:1.0 andView:amountV];
    [self addLeftBorderWithColor:[UIColor grayColor]  Width:1.0 andView:amountPay];
    [self addLeftBorderWithColor:[UIColor grayColor]  Width:1.0 andView:date];
    [self addLeftBorderWithColor:[UIColor grayColor]  Width:1.0 andView:month];

}
- (void)saveTextColors {
    UIColor *leftPayColor = self.leftPay.textColor;
    UIColor *amountVColor = self.amountV.textColor;
    UIColor *monthColor = self.month.textColor;
    UIColor *amountPayColor = self.amountPay.textColor;
    UIColor *dateColor = self.date.textColor;

    self.leftPay.highlightedTextColor = leftPayColor;
    self.amountV.highlightedTextColor = amountVColor;
    self.month.highlightedTextColor = monthColor;
    self.amountPay.highlightedTextColor = amountPayColor;
    self.date.highlightedTextColor = dateColor;
}
- (void)addLeftBorderWithColor:(UIColor *)color Width:(CGFloat) borderWidth andView:(UIView *)view {
    UIView *border = [UIView new];
    border.backgroundColor = color;
    border.frame = CGRectMake(0, 0, borderWidth, view.frame.size.height);
    [border setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleRightMargin];
    [view addSubview:border];
}

此代码来自cell.m 在方法cellForRowAtIndexPath中,我运行相同的方法来创建边界线。

当我键入此问题时,我在debugView中看到了一个问题,即这会产生一个问题,即一遍又一遍地创建边框,但仍然不可见, 在cell.m中删除边框创建后,我在调试视图层次结构中看到了边框(从cellForRowAtIndexPath中的边框创建),但是它不可见。 有什么问题?

0 个答案:

没有答案