具有纵向和横向图像视图的自动布局

Posted

技术标签:

【中文标题】具有纵向和横向图像视图的自动布局【英文标题】:Autolayout with imageview in portrait and landscape 【发布时间】:2014-03-15 07:45:09 【问题描述】:

我是自动布局的初学者。 我目前面临一个关于布局图像的问题。我尝试通过添加约束来解决这个问题,但我不知道如何解决这个问题。 有一个图像视图从屏幕的一端延伸到另一端。它适用于纵向模式,但是当我切换到横向时,框架是固定的。我尝试进行方面填充,但这似乎也不起作用。 我如何将图像拉伸到横向的末端。或者当方向改变时我应该使用其他图像吗? 下面的图片展示了我得到了什么以及我需要什么?谁能帮忙?

谢谢

【问题讨论】:

【参考方案1】:

将此条件放在 viewddidload 以及 viewwillappear 中

if ([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft || [[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeRight)

//LANDSCAPE
YOURIMAGEVIEW SETFRAME HERE

else
//PORTRAIT
YOURIMAGEVIEW SETFRAME HERE

【讨论】:

【参考方案2】:

在自动布局中尝试从类文件中设置 imageView 的框架将不起作用,因为它会与对象的约束属性冲突。

相反,您希望设置常量,以便对象的对齐边缘始终接触视图的一侧。

首先我建议选择你的 imageView 对象并清除当前的约束

然后,在选择对象时,通过将 LHS 和 RHS 距离的约束添加到其持有视图来手动设置约束。

使用界面构建器/实用程序面板更改和设置属性是设置此自动扩展操作的最佳方式。

也可以通过编程方式设置约束(如果您想要自定义动画等,这很有用),但是通过玩弄 IB 上的约束,您最终会掌握它的窍门。

我希望这在某种程度上有所帮助。

干杯,吉姆。

【讨论】:

谢谢,我发现上面的答案非常适合普通视图,但是当我将它用于容器视图时它不会调整大小,知道该怎么做吗?

以上是关于具有纵向和横向图像视图的自动布局的主要内容,如果未能解决你的问题,请参考以下文章

iPad纵向和横向的自动布局iOS8

具有横向和纵向的故事板设计

在 Objective C 中使用自动布局分离纵向和横向视图

如何使用自动布局为纵向和横向方向配置不同的布局?

在自动布局中方向更改为横向时隐藏视图

自动布局和图像视图/视图