Ios 如何以编程方式将我的UIButton图像设置为';重画';?

Ios 如何以编程方式将我的UIButton图像设置为';重画';?,ios,objective-c,uibutton,Ios,Objective C,Uibutton,我正在为我的应用程序使用一些矢量图形(.png)。在photoshop中,我可以放大并始终看到简单几何形状(如圆)的完美清晰边界。然而,在我的iPhone上,我同样的图形看起来粗糙粗糙。我发现如果我将图像填充类型更改为“重画”,这将有助于解决问题 那么,有人能确认在这种情况下使用重画是否是正确的解决方案吗?另外,如何使编程定义的按钮的图像使用“重画”而不是默认值(我认为是“填充”) 以下是我当前按钮的代码: UIButton *btn1 = [UIButton buttonWithType:UI

我正在为我的应用程序使用一些矢量图形(.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];
删除此行:

 UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
 UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeCustom];
添加此行:

 UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
 UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeCustom];
设置内容模式:

 [btn1 setContentMode:UIViewContentModeRedraw];

希望这能回答你所有的担忧

“我发现,如果我将图像填充类型更改为重画,这将有助于解决问题……而不是我认为的默认填充”你能在这里澄清你的观点吗?我从来没有听说过重画和填充“填充类型”。但在回答问题时(a)
png
文件是位图,而不是矢量图形;(b) 调整它们的大小可能会有问题(使用方面填充的contentMode可以缓解问题);(c) 您通常应该拥有屏幕分辨率资产,因此无需进行缩放,因为这样可以提供最佳UI、最佳性能和最有效的内存使用。