7

我正在为我的 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]

什么都没有发生。颜色保持不变(除非我也尝试更改图像,在这种情况下它会完全消失)。

我感觉到我在这里做了一些根本错误的事情——你有什么建议吗?

4

5 回答 5

7

利用

- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;   

用左边的文字改变图像

利用

btn.titleLabel.textColor = yourcolor;

更改文本颜色

于 2012-05-07T09:59:55.863 回答
4

如下定义 myButton 并检查。这可能是您的代码错误。代码是:

myButton = [UIButton buttonWithType:UIButtonTypeCustom];

这是新编辑的部分:

[myButton setBackgroundImage:yourimage forState:UIControlStateNormal];
    [myButton setTitleColor:yourcolor forState:UIControlStateNormal];
于 2012-05-07T09:56:16.473 回答
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];

感谢你..

于 2012-05-07T12:09:13.387 回答
0

您的文本消失了,因为您已将按钮正面的图像设置为按钮主图像。

[cell.myButton setImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal];

您需要设置按钮背景图像,以便您的文本可见,因为图像将绘制在 UIButton 上下文的后侧。

所以只需将上面的代码行替换为:

[cell.myButton setBackgroundImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal];
于 2012-05-07T10:32:50.287 回答
0

我想你想要的是改变你的按钮背景:

[cell.myButton setBackgroundImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal];
于 2012-05-07T10:13:15.183 回答