我在这个论坛上发现了一种方法,该方法可以从视图的以太侧创建边框,当它在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中的边框创建),但是它不可见。 有什么问题?