如何以编程方式将我的UIButton图像设置为“重绘”?

时间:2013-06-04 04:19:30

标签: ios objective-c uibutton

我正在为我的应用使用一些矢量图形(.png)。在Photoshop中,我可以放大并始终看到简单几何形状的完美清晰边界,如圆圈。然而,在我的iPhone上,我的相同图形看起来粗糙和粗糙。我发现如果我将图像填充类型改为重绘',这有助于解决问题。

那么,有人可以确认在这种情况下使用重绘是否是正确的解决方案?另外,如何使用程序定义按钮的图像使用“重绘”而不是默认(我认为是'填充')?

这是我当前按钮的代码:

UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn1 setTitle:@"Cool title" forState:UIControlStateNormal];
[btn1 setFrame:CGRectMake(7, 7, 150, 160)];
[btn1 setImage:[UIImage imageNamed:@"myGraphic.png"] forState:UIControlStateNormal];
[btn1 addTarget:self action:@selector(selectFav) forControlEvents:UIControlEventTouchUpInside];
[_scroller addSubview:btn1];

1 个答案:

答案 0 :(得分:2)

删除此行:

 UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];

添加以下行:

 UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeCustom];

设置内容模式:

 [btn1 setContentMode:UIViewContentModeRedraw];

希望这能解答您所有的疑虑!