设置UIImageView的尺寸时出现问题

时间:2014-12-23 01:03:57

标签: objective-c uiimageview uiscreen

以下代码如下:

  • 检测屏幕的宽度和高度
  • 将屏幕尺寸设置为UIImageView
  • UIImageView的位置设为0,0

代码(在viewDidLoad中运行):

NSUInteger widthOfScreen = [UIScreen mainScreen].bounds.size.width;
NSUInteger heightOfScreen = [UIScreen mainScreen].bounds.size.height;
self.background.frame = CGRectMake(0, 0, widthOfScreen, heightOfScreen);

这是在iPhone 6上的模拟器中测试的。

运行代码时,调试器会说屏幕尺寸UIImageView是337x568,这是正确的(当我实现正确的NSLog语句时)。但是,模拟器显示UIImageView不适合屏幕。 (它太大了)。我怎样才能让它发挥作用?

我认为值得注意的是UIImageView显示的图像的原始尺寸为768x1408。

3 个答案:

答案 0 :(得分:0)

可能是因为您的图片太大而且没有剪裁到父视图。尝试先剪裁图像以适合UIImageView。

self.view.clipsToBounds = YES.

您可以从这里参考: why is my UIView subview not rendering within the parent? (code attached)

还有一些提示,尝试将UIImageView的背景颜色更改为红色或其他某些内容,以便您可以清楚地了解视图的显示效果。

答案 1 :(得分:0)

首先,您应该将代码推送到vc的viewWillLayoutSubviews内。如果问题仍然存在,请检查contentMode的{​​{1}},如果图片太大,请务必将其更改为imageViewUIViewContentModeScaleToFill

答案 2 :(得分:0)

找到答案:

http://tripletwollc.com/2013/02/resizing-a-uiimageview-in-viewdidloadviewdidappear/

根据该网站,您似乎无法在viewDidLoad中调整UIImageView的大小。当我以编程方式创建UIImageView

时,它工作正常