UIImageView:全屏图像

时间:2011-01-16 18:42:51

标签: iphone ios

我想在iPhone上看到全屏图像。多少 像素我必须设置它? iphone 3和i的宽度和高度不同 4?

我的源代码:

NSString *filePath = [[NSBundle mainBundle] pathForResource:theProduct.image ofType:@"png"]; 
UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:filePath]];
img.frame = CGRectMake(0.0, 0.0, ?, ?);
[self.view addSubview:img];

我应该放什么而不是问号?

非常感谢, 斯特凡诺

4 个答案:

答案 0 :(得分:8)

尝试将UIImageView的框架设置为[[UIScreen mainScreen] applicationFrame]

这将设置UIImageView使用应用程序可用的所有空间,如果状态栏可见,则排除状态栏。

答案 1 :(得分:1)

您应将其设置为较旧的iPhone的尺寸:320 x 480像素。然后iPhone 4将其翻倍以适应屏幕。如果您不想看到像素化,则需要另一张尺寸为640 x 960的@ 2x图像。

答案 2 :(得分:0)

问题已经解答(状态栏被删除后使用320 x 480或320 x 460)。

作为解决类似问题的一种方法:在Xcode中,在xib中删除UIImageView;适当调整大小,然后在右侧窗格中显示“大小检查器”(右侧第二个选项卡)。它给出了Frame Rectangle的宽度和高度。如果您不希望缩放(或者更确切地说,如果您想要1:1比例),请将此宽度和高度用作图像的大小。另外(如上所述)使用双分辨率图像@ 2x进行视网膜显示。

答案 3 :(得分:0)

这是一个非常古老的线程,所以只是更新如何使用Constraints完成。

imageView?.translatesAutoresizingMaskIntoConstraints = false
imageView?.contentMode = .scaleAspectFit
view.backgroundColor=UIColor.blue
view.addSubview(self.imageView!)

    let height = NSLayoutConstraint(item: imageView!, attribute: .height, relatedBy: .equal, toItem: view, attribute: .height, multiplier: 1, constant: 0)
    let width = NSLayoutConstraint(item: imageView!, attribute: .width, relatedBy: .equal, toItem: view, attribute: .width, multiplier: 1, constant: 0)
    view.addConstraints([height, width])