解决自适应和流体布局问题
Solving Adpative and fluid layout issue
在我的应用程序中,我注意到在 iPhone SE > iPhone 7+ 的不同设备之间似乎有额外的白色 space 我应用的 AutoLayout 规则.
最好的例子是我的欢迎屏幕上的图像视图,如下图所示。随着设备变大,底部的 space 变大,为了解决这个问题,我想做的是将图像向下推以容纳额外的 space.
为了解决这个问题,我尝试做的是应用一个不等式约束,如果可能的话,它会将图像视图顶部的 space 增加超过 45pts,但我似乎得到了一个不等式约束错误如下所示。
我尝试过的另一种方法是添加优先级约束并将其与不等式约束结合起来,如下图所示,但这对我的形象没有影响有更多 space 的更大的设备。
解决此类问题的最佳方法是什么?是否有任何有用的链接或教程可以帮助我更好地理解这个问题?
问题是约束不明确 - 您的顶部约束是说图像顶部必须大于或等于顶部布局指南的偏移量。有无数可能的值可以满足这一点。自动布局需要将约束解析为单个值,以便它确切地知道需要放置东西的位置。
优先级用于指示当有多个约束给出同一元素的结果时要采用哪个值 - 例如如果有两个约束指定图像的最高值,优先级将允许自动布局决定使用哪一个。
为了让您的布局适应不同的屏幕高度,您可以尝试移除顶部约束,而是将图像与父视图的 'center Y' 的偏移量垂直对齐,即。类似于:
或者您可以将所有元素放在包装视图中,并将该视图与主视图的中心 X 和中心 Y 对齐(假设您希望它居中,如果不添加偏移量)。
希望说得通,对您有所帮助!
这就是我只使用 SnapKit 的原因。
Interface Builder 可以工作,但管理起来非常痛苦。如果你有一个错误,你将点击并指向并点击并指向数百次,然后才能找到问题所在。你最终不得不非常自律,因为在 IB 中很容易创建一大堆约束。每当您需要更多控制时,您仍然必须以编程方式修改约束。
不要让你的生活变得艰难。使用 SnapKit,永不回头。它是免费的、开源的等等
在我的应用程序中,我注意到在 iPhone SE > iPhone 7+ 的不同设备之间似乎有额外的白色 space 我应用的 AutoLayout 规则.
最好的例子是我的欢迎屏幕上的图像视图,如下图所示。随着设备变大,底部的 space 变大,为了解决这个问题,我想做的是将图像向下推以容纳额外的 space.
为了解决这个问题,我尝试做的是应用一个不等式约束,如果可能的话,它会将图像视图顶部的 space 增加超过 45pts,但我似乎得到了一个不等式约束错误如下所示。
我尝试过的另一种方法是添加优先级约束并将其与不等式约束结合起来,如下图所示,但这对我的形象没有影响有更多 space 的更大的设备。
解决此类问题的最佳方法是什么?是否有任何有用的链接或教程可以帮助我更好地理解这个问题?
问题是约束不明确 - 您的顶部约束是说图像顶部必须大于或等于顶部布局指南的偏移量。有无数可能的值可以满足这一点。自动布局需要将约束解析为单个值,以便它确切地知道需要放置东西的位置。
优先级用于指示当有多个约束给出同一元素的结果时要采用哪个值 - 例如如果有两个约束指定图像的最高值,优先级将允许自动布局决定使用哪一个。
为了让您的布局适应不同的屏幕高度,您可以尝试移除顶部约束,而是将图像与父视图的 'center Y' 的偏移量垂直对齐,即。类似于:
或者您可以将所有元素放在包装视图中,并将该视图与主视图的中心 X 和中心 Y 对齐(假设您希望它居中,如果不添加偏移量)。
希望说得通,对您有所帮助!
这就是我只使用 SnapKit 的原因。
Interface Builder 可以工作,但管理起来非常痛苦。如果你有一个错误,你将点击并指向并点击并指向数百次,然后才能找到问题所在。你最终不得不非常自律,因为在 IB 中很容易创建一大堆约束。每当您需要更多控制时,您仍然必须以编程方式修改约束。
不要让你的生活变得艰难。使用 SnapKit,永不回头。它是免费的、开源的等等