选择行并更改按钮颜色

时间:2016-06-09 11:46:26

标签: ios objective-c iphone xcode

enter image description here在我的tableview中,单元格是自定义单元格,我在其中有按钮和标签。 标签和按钮背景颜色为绿色。

当我单击特定行时,按钮颜色更改和标签背景颜色就是这样。在这里,我使用以下代码通过图层

设置标签背景颜色
cell.lblCountMsg.backgroundColor = [UIColor clearColor];
cell.lblCountMsg.layer.backgroundColor = [UIColor colorWithRed:110/255.0 green:189/255.0 blue:82/255.0 alpha:1.0].CGColor;

但是,相同的代码不适用于Button。我尝试使用图层

cell.btnTeting.backgroundColor = [UIColor clearColor];
cell.btnTeting.layer.backgroundColor = [UIColor colorWithRed:110/255.0 green:189/255.0 blue:82/255.0 alpha:1].CGColor;

但未设置绿色并且还更改了选择颜色的颜色。

请参阅,我的屏幕截图(Breaking new)为绿色。 请帮我找到解决方案。 在此先感谢。

3 个答案:

答案 0 :(得分:1)

您应该实现didSelectRowAtIndexPath之类的内容,

  -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

// Here your custom cell's class instead of UITableViewCell
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

cell.btn.backgroundColor = [UIColor redColor];

}

答案 1 :(得分:1)

如果您创建了UITableViewCell子类,请尝试覆盖

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated

方法。在此方法中,您可以在突出显示单元格时更改单元格中的视图。

例如:

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
     self.btnTeting.backgroundColor = [UIColor colorWithRed:110/255.0 green:189/255.0 blue:82/255.0 alpha:1.0]; 
}

<强>已更新

@interface SuggestedGroupCell ()
@property (strong, nonatomic) IBOutlet UIButton *btnSubScribe;
@end

@implementation SuggestedGroupCell
  - (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
      self.btnSubScribe.backgroundColor = [UIColor colorWithRed:110/255.0 green:189/255.0 blue:82/255.0 alpha:1.0]; 
  }
@end

答案 2 :(得分:0)

如果要更改按钮的背景颜色,请删除此行,然后尝试:

width: "*"

但是如果你想改变按钮标题颜色,你可以编写如下代码:

cell.btnTeting.layer.backgroundColor = [UIColor colorWithRed:110/255.0 green:189/255.0 blue:82/255.0 alpha:1].CGColor;

这里的UIControlState可以根据你的要求选择UIControlStateNormal,UIControlStateSelected等。