Re: [问题] tableview cell下的uilabel变色问题

楼主: zip520123 (SLin HD)   2016-02-03 10:21:24
※ 引述《iamsewei (少年阿兵)》之铭言:
: 我在uitableview下的cell加了一个uilabel
: 在cell的selectstyle设为UITableViewCellSelectionStyleNone;
: 点击uilabel希望让他变色
: 所以我加了 UITapGestureRecognizer 设了action
: 在里面
:

: 顺利让他变色了
: 我希望可以让点击到的cell 变色
: 其他的变回原来的颜色
: 所以我改成这样
:

: 结果不行...不知道是哪里有问题...
: 觉得xcode的error message 有点难看啊 T_T
: 不知道有没有更好的办法...
我看你回应的图片只是想要改label highlighted 颜色,
我是在xib里面改的

如果要改borderColor
在cell类别里面的setHighlighted方法改
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated{
[super setHighlighted:highlighted animated:animated];
self.more.layer.borderWidth=2;
more.layer.zPosition = 1;
if (highlighted){
self.more.layer.borderColor=UIColorFromRGB(0xffffff).CGColor;
}else{
more.layer.borderColor=UIColorFromRGB(0xdde7b5).CGColor;
more.textColor=UIColorFromRGB(0xdde7b5);
}
}
更改cell selected背景也是在cell类别里面改
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
self.selectedBackgroundView=[UIView new];
self.selectedBackgroundView.backgroundColor= UIColorFromRGB(0xfebbcc);
}
结果如图

另外这是UIColorFromRGB的macro
#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
当初也是卡关很久,希望这个有帮到你:D
作者: zonble (zonble)   2016-02-03 21:00:00
其实我放在 github 那个 code 也是这个作法啊 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com