gpt4 book ai didi

iphone - 如何使用 Autoresizing Mask 将 UIView 锚定在中间点之外的几个像素?

转载 作者:行者123 更新时间:2023-12-01 18:02:07 25 4
gpt4 key购买 nike

观察以下屏幕截图:

iPhone Autoresizing Mask Question

如何使用 Autoresizing Mask 将 UIView 锚定在中间点之外的几个像素处,使其始终位于中间点左侧 20px 处?

我试过设置autoresizingMask属性(property)给 UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin它并没有真正做到这一点。

如果我将 View 包装在另一个更大的 View 中,该 View 填满整个屏幕并且根本不调整大小,我确实设法做到了。但是有没有办法在没有额外 View 的情况下做到这一点?

最佳答案

正如您已经发现的那样,自动调整大小的蒙版不能很好地处理这种情况。如果您想与 super View 保持固定距离或在中间某处按比例调整大小/重新定位,它们会非常有用。仅使用这些选项,您就可以做很多令人惊讶的事情,但是偏心锚定并不是您可以轻松做到的

如果你想用自动调整蒙版来做到这一点,你需要把你的盒子放在另一个空的UIView ,一个在自动调整蒙版时更方便的位置。它看起来像这样。

这是您现在所拥有的:

                       center
|
|---------------------------------------------------| <-- The main parent view
|-----| <-- your view

你想要的是这样的:

                       center
|
|---------------------------------------------------| <-- The main parent view
|--------------------| <-- The new view, centered in the parent
|-----| <-- your view

新 View 应该是完全透明的,具有固定的宽度,以及与父 View 两侧的灵活距离。它应该足够宽以完全包含偏离中心的盒子,并且不能更宽。如果它恰好位于主父 View 的中心,那么无论父 View 的大小发生什么变化,它都会保持居中。

然后将您的框添加为新 View 的 subview ,与父级的左边缘具有固定的宽度和固定的距离。现在,仅使用自动调整蒙版,您的 View 将保持在您想要的位置。

一个更简单的选择可能是覆盖 -layoutSubviews在您看来,或 -viewDidLayoutSubviews在您的 Controller 上(可用的 iOS 5.0 及更高版本),只需手动定位 View 。但是您问如何使用自动调整大小的蒙版来做到这一点,这就是您所得到的。如果不添加额外的 View ,就无法使用自动调整大小的蒙版来获得您想要的定位行为。

关于iphone - 如何使用 Autoresizing Mask 将 UIView 锚定在中间点之外的几个像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7936020/

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