以编程方式在UITableView单元格中设置UIImageView的大小 - 原点是什么?

时间:2010-09-11 20:55:55

标签: iphone uiimageview

我正在尝试使用以下方式以编程方式设置UIImageView的大小:

[thisImageView setFrame:CGRectMake(x, y, image.size.width, image.size.height)];

我尝试使用x = 0,y = 0,但UIImageView消失了。

有关我为什么要这样做的更多信息。我试图在不使用iOS 4 SDK(仅使用3.2 SDK API调用)的情况下在iPhone 4上显示高分辨率图像。我打电话来看看我是否在iPhone 4上,所以我试图将我的UIImageView的大小加倍,这样当我把高分辨率的UII图像放入时,它就不会有颗粒感。

3 个答案:

答案 0 :(得分:2)

不确定iOS有什么特别之处。只需使用与3.2一起使用的相同方法:imageNamed:...只要您的图像被正确命名(yourimagename.png和yourimagename@2x.png),它就会处理所有事情。 iOS 4 SDK中没有任何花哨的东西,只需像以前一样给出你在点数中使用的大小。

如果这不适合你的情况,你能解释一下原因吗?

答案 1 :(得分:2)

  

我正在尝试在不使用iOS 4 SDK的情况下在iPhone 4上显示高分辨率图像(仅使用3.2 SDK API调用)

哎哟。不要那样做。

针对4.0进行编译,将部署目标设置为3.whatever。

创建图片时,请检查[UIImage respondsToSelector:@selector(imageWithCGImage:scale:orientation:)]。如果是,则可以使用+[UIImage imageWithCGImage:scale:orientation:]创建“比例2”图像,该图像将在iPhone 4上的UIImageView中正确显示(具有“比例2”屏幕)。

如果你真的不能使用OS 4 SDK(你似乎没有说明原因),那么使用适当的内容模式(AspectFit / AspectFill / ScaleToFill)使UIImageView更小,并将其框架设置为像素大小的一半(例如,如果图像是100x100像素,则将其设置为(CGSize){50,50})。这会将图像缩小到一半大小,但是双分辨率屏幕意味着您会逐像素地看到它。

答案 2 :(得分:1)

我认为你的做法是错误的。 iPhone 4使用点而不是像素,这使得尺寸加倍麻烦。旧设备上的1点等于iPhone 4上的4个像素,但仍然用作1点。

创建框架时,实际上并没有为API提供像素尺寸,而是提供点尺寸。