gpt4 book ai didi

ios - 如何在不使用代码的情况下使用约束 AutoLayout 在横向和纵向上指定不同的布局?

转载 作者:可可西里 更新时间:2023-11-01 03:13:22 26 4
gpt4 key购买 nike

我有一个具有登录屏幕的 iPad 应用程序,登录控件包含在 UIView 中。

当 iPad 处于纵向时,我在应用程序的底部和中心附近有一个登录 UIView,几乎就在键盘所在的位置上方,公司 Logo 位于顶部居中的 UIImageView 中。我正在使用 AutoLayout 约束来保持公司 Logo 被吸引到顶部和右侧,并且登录 UIView 被吸引到底部和右侧。

enter image description here
(来源:chattypics.com)

当我把它旋转成横向时,效果是这样的:

enter image description here
(来源:chattypics.com)

我希望它看起来像这样

enter image description here
(来源:chattypics.com)

因此,我希望这两个元素并排放置,并且我希望 Login UIView 更靠右。在纵向模式下,UIView 右侧的间距大于我想要的横向模式,而与底部的距离小于我想要的横向模式。我可以通过“容器中的中心”来处理这个问题,但这在横向模式下也不起作用。

我使用了详细的技术 in this post在横向模式下使事物“并排”,但我认为这在这里不够,因为我希望“ View ”中的布局在旋转时也不同。

我可以想出以编程方式实现这一目标的方法,但我无法想象这是一个独特的需求,那么是否有某种方法仅使用 IB 中的约束来实现这一目标?一些“这就是 IB 中的约束设计的目的”方式,可能处理优先级?还是我只需要在代码中完成它?

最佳答案

您可以在 Interface Builder 中使用不同的约束优先级来实现此类行为。对于这两个 View (“公司 Logo ”和“登录 View ”),您需要设置“容器中的垂直中心”和“容器中的水平中心”约束,并降低一些优先级。接下来,您需要使用具有“小于或等于”等关系的规则来定义“垂直空间”和“水平空间”约束。

我仅使用 Interface Builder 就实现了这种行为。

您还可以使用不同的优先级将“小于或等于”与“大于或等于”组合起来以获得最佳结果。

关于ios - 如何在不使用代码的情况下使用约束 AutoLayout 在横向和纵向上指定不同的布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19364430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com