【问题标题】:UIImageView making other Views inconsistentUIImageView 使其他视图不一致
【发布时间】:2016-12-01 06:57:28
【问题描述】:

我设计了一个ViewController,在视图底部有一个ImageView、3 个Label-TextField 组合、一个Label 和一个Toolbar。所有这些视图元素都在Stack View 内。设计如下:

ImageViewcontentMode 属性在属性检查器中设置为 Aspect Fit

现在当我运行应用程序并选择不同尺寸的照片时,ImageView 似乎在不同时间不一致。喜欢:

设置ImageView的青色背景是为了区分ImageView和原来的Background

这没关系。但是当我选择大尺寸照片时,它似乎不一致,因为ImageView 与下面的Toolbar 重叠,而这次Camera 按钮不再可点击。图片如下:

当我选择另一张照片时,设计变得更加糟糕。视图在不同的时间以不同的方式出现。截图为:

现在该怎么办?我没有从代码方面完成任何这些设计,全部来自 Interface Builder

任何帮助都将不胜感激。

我在 Attributes InspectorDrawing 部分有这些选项:

这是我的Stack View 的属性:

【问题讨论】:

  • 您必须为您设置图像的图像视图提供固定大小和宽度,并使图像视图方面填充您的问题解决。
  • 您希望您的UIImageView 是固定大小还是可变的?
  • @MuhammadHassan 图像应该适合UIImageView,同时保持图像的原始纵横比。这需要固定大小的UIImageView 吗?
  • 通过显式约束或通过Stack ViewDistribution 属性设置UIImageView 高度,以便将其固定。
  • @HimanshuMoradiya 你所说的 sizewidth 究竟是什么意思?你的意思是 heightwidth 吗?

标签: ios objective-c uiimageview interface-builder ios-camera


【解决方案1】:

看来一切都很好。只需在您的工具栏中添加高度限制。问题将得到解决。

【讨论】:

    【解决方案2】:

    首先,确保您在属性检查器中检查了UIImageViewClip To Bounds 属性。

    其次,设置约束和/或Stack ViewDistribution 属性,使所有视图都适合可用高度。

    这是一个示例:https://www.dropbox.com/s/5a7r0oz1v8vclgz/AspectFitImageView.zip?dl=0

    【讨论】:

    • 我的属性检查器中没有 Clip To Bounds。使用我可用的Drawing 选项编辑了我的问题。
    • 您选择了UIImageView 吗?请仔细检查或分享您的 Xcode 版本。
    • 是的。我再次选中UIImageView。但什么都没有:(而且我的 Xcode 是 7.2 (7C68)
    • 让我与您分享一个示例。
    • 那太好了:)
    【解决方案3】:

    通过搜索很多方法,我终于能够解决这个问题。设置内容拥抱优先级(不想增长)和内容压缩阻力优先级(不想缩小)有很大帮助。基本上我需要垂直调整元素。所以调整每个元素的垂直优先级解决了我的问题。由于我必须不时更改 ImageView 的大小,因此我将其垂直 huggingcompression 设置为低于Stack View。其他优先级保持默认不变。

    为了形象化情况,这里附上图片。这里使用颜色组合来区分Stack View.元素

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多