目标C.这个UIButton图像有什么问题?

时间:2014-10-22 19:31:38

标签: ios objective-c uibutton

我在IB中有一组UIButtons。我想在每轮教育游戏中随机添加图像到几个按钮。

您可以在页面顶部看到一些图像隐藏起来:

enter image description here

如您所见,按钮中的图像为蓝色。那么,我做错了什么(也就是为什么他们是蓝色的?)?它们被设置为背景图像吗?

我按照以下方式添加图片:

    int tmpTag0 = [[currentButtonArray objectAtIndex:0] integerValue];
    UIButton *tmpButton0 = (UIButton *)[self.view viewWithTag:tmpTag0];
    [tmpButton0 setImage:[UIImage imageNamed:temp1] forState:UIControlStateNormal];

........

    int tmpTag4 = [[currentButtonArray objectAtIndex:4] integerValue];
    UIButton *tmpButton4 = (UIButton *)[self.view viewWithTag:tmpTag4];
    [tmpButton4 setImage:[UIImage imageNamed:temp5] forState:UIControlStateNormal];

currentButtonArray是一个包含5个随机按钮索引的数组,对应于5个按钮标记。

非常感谢任何想法。

我在Xcode帮助中查找UIButton时看到的内容:

enter image description here

更新: 在下面的人的帮助下,这对我有用:

int tmpTag0 = [[currentButtonArray objectAtIndex:0] integerValue];
UIButton *tmpButton0 = (UIButton *)[self.view viewWithTag:tmpTag0];
UIImage *buttonImage0 = [UIImage imageNamed:temp1];
buttonImage0 = [buttonImage0 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[tmpButton0 setImage:buttonImage0 forState:UIControlStateNormal];

2 个答案:

答案 0 :(得分:5)

quote

  

使用“图像”字段,您可以指定要在图像中显示的图像   你按钮的内容。 ...请注意,此图像将自动显示   除非您明确说明,否则在按钮内呈现为模板图像   将其渲染模式设置为UIImageRenderingModeAlwaysOriginal。

所以,可能:

UIImage *image = [[UIImage imageNamed:temp5] 
                   imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[tmpButton4 setImage:image ...

(等)

答案 1 :(得分:0)

在我看来,更优雅的选项可能是转到界面构建器中的UIButton属性检查器,然后选择Custom下的Type。如果您保留按钮的默认System类型,则仅显示您所指的蓝色版本。您可以像往常一样通过代码或在界面构建器内初始化按钮。