UIImageView使其他视图不一致

时间:2016-12-01 06:57:28

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

我设计的ViewController ImageView,3 Label-TextField组合,一个Label和一个Toolbar位于底部视图。所有这些视图元素都在Stack View内。设计如下:Design from Main storyboard

contentMode的{​​{1}}属性在属性检查器中设置为 Aspect Fit

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

  

设置ImageView的青色背景,以区分ImageView与原始背景之间的差异。

No problem in the view

这没关系。但是,当我选择大尺寸照片时,由于ImageView与下方的ImageView重叠,因此似乎不一致,而这次Toolbar按钮不再可点击。这是图像:Camera button not clickable

当我选择另一张照片时,设计会更加破碎。视图在不同时间以不同方式显示。屏幕截图为:Same image but different behaviour 1Same image but different behaviour 2

  

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

     

任何帮助都会很明显。

我在属性检查器绘图部分中有这些选项:Drawing section of Attributes Inspector

这是我的Camera属性: Stack View's attributes

3 个答案:

答案 0 :(得分:1)

好吧,似乎一切都很好。只需在工具栏中添加高度约束即可。问题将得到解决。

答案 1 :(得分:0)

首先,确保您已在“属性”检查器中检查Clip To Bounds的{​​{1}}属性。

enter image description here

其次,设置约束和/或UIImageView的{​​{1}}属性,使所有视图都适合可用的高度。

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

答案 2 :(得分:0)

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

为了可视化情况,这里附有图片。此处使用颜色组合来区分Stack View的{​​em>元素。Design Priorities

  

希望这有帮助。