我正在为我的iPhone项目使用StoryBoard功能。在故事板中,我有一个视图控制器,其中包含使用原型单元格的表视图。在原型单元格内部,我有一个UIButton(圆角矩形)连接到一个子类UIButton类。 tableview从数组中获取数据,数据在cellForRowAtIndexPath中打印出来。
在cellForRowAtIndexPath中,我有条件地修改了单元格的外观。这是我开始遇到问题的时候。我能够成功更改按钮的文本。但是,如果我尝试更改按钮的图像,请使用:
[cell.myButton setImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal];
图像已更改,但文本消失。
如果我尝试更改按钮的文字颜色,请使用:
[cell.myButton setTitleColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:.77] forState:UIControlStateNormal]
什么都没发生。颜色保持不变(除非我也尝试更改图像,在这种情况下它会完全消失)。
我感觉我在这里做了一些根本错误的事情 - 你有什么建议吗?
答案 0 :(得分:3)
如下定义myButton并检查。这可能是您的代码中的错误。代码是:
myButton = [UIButton buttonWithType:UIButtonTypeCustom];
这是新编辑的部分:
[myButton setBackgroundImage:yourimage forState:UIControlStateNormal];
[myButton setTitleColor:yourcolor forState:UIControlStateNormal];
答案 1 :(得分:3)
使用
- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;
更改带有文字的图片
使用
btn.titleLabel.textColor = yourcolor;
更改文字颜色
答案 2 :(得分:2)
这是为自定义按钮设置不同属性的方法...您还可以在此处找到setBackgroudimage和setTitleColor属性...
UIButtin *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
[myButton setFrame:CGRectMake(165, 205, 65, 40)];
[myButton setTitleColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:.77] forState:UIControlStateNormal];
[myButton setTitle:@"Hi....." forState:UIControlStateNormal];
[myButton addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];
[myButton setBackgroundImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal];
[cell addSubview:myButton];
谢谢你..
答案 3 :(得分:0)
我想你想要的是改变你的按钮背景:
[cell.myButton setBackgroundImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal];
答案 4 :(得分:0)
您的文字消失了,因为您已将按钮正面的图像设置为按钮主图像。
[cell.myButton setImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal];
您需要设置按钮背景图像,以便在UIButton上下文的背面绘制图像时显示文本。
所以只需将上面的代码行替换为:
[cell.myButton setBackgroundImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal];