setFrame - 我需要对此进行一些澄清

时间:2012-02-09 12:50:22

标签: iphone uibutton cgrectmake

我有一个用于编程创建按钮的代码,这里是

UIImage *aroundImage = [UIImage imageNamed:@"locBar.png"];
    UIImage *aroundImageDown = [UIImage imageNamed:@"locBarColor.png"];
    UIButton *aroundButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [aroundButton setFrame:CGRectMake(240, 369, 80, 48)];  
    [aroundButton setImage:aroundImage forState:UIControlStateNormal];
    [aroundButton setImage:aroundImageDown forState:UIControlStateHighlighted];
    [aroundButton setImage:aroundImageDown forState:UIControlStateSelected];
    [aroundButton addTarget:self action:@selector(aroundMe) forControlEvents:UIControlEventTouchUpInside];    
    [self.view addSubview:aroundButton]; 

所以现在我已经设置了按钮的框架,但是如果这个应用程序在640x960的iPhone4上看到了怎么办。然后我有不同的图像“locBar@2x.png和locBarColor@2x.png”,它们应该与不同的CGRectMake,或者它们应该?我的问题是如何为这两种分辨率设置一个按钮,并以编程方式进行。

3 个答案:

答案 0 :(得分:2)

它是自动的:) 如果可用,ios将加载@ 2x版本,如果设备具有x2比例。 帧是在点,而不是像素。

在点数与像素数中查看here

答案 1 :(得分:1)

如果您包含具有相同名称的高分辨率版本的图像,但在扩展名前加上@ 2x,只要您使用[UIImage imageNamed:],iOS就会根据显示分辨率自动选择正确的分辨率功能,或在IB中设置图像。

答案 2 :(得分:-1)

你必须把条件然后根据屏幕尺寸制作按钮框并给它们图像。