当使用自动布局时,我对如何设置视图的大小,更重要的是,如何设置标签/按钮/图像感到困惑。
我已经阅读了几十个网页的观点。许多人说,如果我正确地使用了auto-layout,我就不需要显式地声明视图对象的大小。然而,自动布局似乎几乎要求准确,明确的大小限制!如果我不给他们,自动布局说我的图像和视图大小是“模棱两可”。
我也想知道,当我的康纳屈特灵被装载到视网膜显示器上时,自动布局将做什么。我的300x90图像会突然变成原来的一半吗?现在导航栏会覆盖我从顶部锁定70的视图吗?大多数自动布局教程关注的是如何使用约束,而不是我的300x90图像将如何被不同设备上的iOS操作。
看起来,如果他们希望视图是流动的,那么我应该指定百分比,而不是特定的像素测量!
有谁能帮助我更好地理解我的观点将如何放大和缩小?
最佳答案
我已经阅读了几十个网页的观点。很多人说如果我是
正确使用自动布局,我不需要显式地声明
我的视图对象的大小。然而,汽车布局似乎几乎需要
正是如此,明确的大小限制!如果我不给他们,汽车
布局显示我的图像和视图大小“不明确”。
在这里区分普通视图和滚动视图是很重要的。对于普通视图,您可以布局内容并将视图约束到超级视图的边缘或周围的视图,这样可以工作。
对于滚动视图,Auto Layout必须能够计算contentView的大小。这可以通过两种方法之一来完成。您可以1)使用约束显式设置contentView的宽度和高度,在这种情况下,现在可以将contentView视为普通视图并相应地进行布局,或者2)显式地调整和约束contentView中的所有对象,以便可以根据contentView包含的对象的大小计算contentView的大小。换句话说,您要么固定contentView的大小以便Auto Layout可以放置其他项,要么固定项的大小以便AutoLayout可以计算contentView的大小。
我也想知道当我的康纳特拉岛
被装载在视网膜显示器上。我的300x90图像会突然变成一半吗
大小?我从上面钉70的一个视图现在会被一个
导航栏?大多数自动布局教程的重点是如何使用
限制,而不是我的300x90图像将如何被操作上的iOS
不同的设备。
约束是以点而不是像素来完成的。你的图像是一点一点的。它的大小将适合所有设备。如果您为@2X和@3X提供额外的图像资源,它甚至会为每个设备使用正确的图像。
看起来,如果他们想让景色流畅的话,我应该
指定百分比,而不是特定像素测量!
可以使用约束的倍增属性来实现百分比。例如,如果希望图像宽度为超级视图宽度的50%,请在图像视图与其超级视图之间设置“宽度相等”约束,然后将“倍增”更改为300x90
。
关于swift - swift -自动布局-UIView-固有尺寸混淆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28795193/