【问题标题】:UIImageView will not resize to match UIView's frameUIImageView 不会调整大小以匹配 UIView 的框架
【发布时间】:2015-06-14 23:45:11
【问题描述】:

我希望我的背景是一张图片,所以在 IB 中我设置了一个 UIImageView,其约束条件与其 UIView 的大小相同。但是,当我在UINavigationBar 上选择“back”时,当NavControl 弹出到前一个VC 时,这就是它消失之前的内容:

也就是说,UIImageView 非常大,几乎是 UIView 宽度的两倍,因此当它向右滑出屏幕时,UIImageView 的图像会一直拖着,最终消失。

我也尝试过以编程方式执行此操作,但即使我将UIImageView 的框架设置为CGRectMake(0, 0, 100, 100),它仍然会移到UIView 的左侧,就好像UIView的原点不在左上角,而是稍微偏离屏幕。这可能吗?如何使图像适合屏幕并且不会消失?

如果它完全相关,我正在使用的 jpgImages.xcassets 中,虽然我可以在 IB 中选择它并出现,但 UIImageView 的图像是白色/空白的,所以在我的viewDidLoad方法我需要指定self.imageView.image = [UIImage imageNamed:@"hockeyIce.jpg"].

【问题讨论】:

  • 检查约束?

标签: ios uiview uiimageview cgrect


【解决方案1】:
  1. 转到 Main.storyboard
  2. 选择有问题的视图
  3. 点击属性检查器
  4. 向下滚动到查看,选择模式:缩放以填充

【讨论】:

  • 好的,这确实有效。但是图像在其原生方面看起来要好得多。如果不离开屏幕,就没有办法让它成为 AspectFill 吗?这与拥抱或压缩优先级有关吗?
  • 啊,我解决了。我需要将此添加到viewDidLoad[self.imageView setClipsToBounds:YES]
【解决方案2】:

好的,解决方案是将[self.imageView setClipsToBounds:YES] 添加到我的viewDidLoad。事实证明,这是 aspectFill 的常见问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 2018-02-06
    • 1970-01-01
    • 2022-06-16
    相关资源
    最近更新 更多