gpt4 book ai didi

ios - 设置约束后获得正确的框架

转载 作者:行者123 更新时间:2023-11-28 07:07:44 25 4
gpt4 key购买 nike

我有一个方法可以根据我的 UIImageView 的当前帧创建一个 mask 层,它按我预期的那样工作。但是,在一种情况下,我在 viewWillAppear 方法中修改了 UIImageView 的高度约束,然后将 mask 创建器应用于 UIImageView,这会创建一个尺寸过大的面具。所以我的问题是,如何强制获取该 UIImageView 的修改后的正确框架?

现在我得到的高度是 140,而不是 105,但是如果我在设置约束后使用 layoutIfNeeded,它变成 118,更接近,但仍然不是 105。

更新:

我用来制作面具的方法:

public func setupMaskForImageView() {
let mask = CALayer()
let resizedMaskImage = resizeImage(UIImage(named: imageMaskName)!, newSize: frame.size)
mask.contents = resizedMaskImage
mask.frame = CGRectMake(0, 0, frame.size.width, frame.size.height)
layer.mask = mask
layer.masksToBounds = true
}

我修改了viewWillAppear中的约束

imageHeight.constant = UIScreen.mainScreen().bounds.width / 2.5

最佳答案

将您的框架保存在 layoutSubiews 中总是理想的。来自 Apple 开发者 UIKit doc :

“layoutSubviews - 如果您需要比约束或自动调整行为提供的更精确的 subview 布局控制,请实现此方法。”

也就是说,您最好的选择可能是为您的自定义 UIImageView 创建一个子类,并将您的重构逻辑插入到 layoutSubviews 中。这将确保您的 View 和面具始终正确构图。

关于ios - 设置约束后获得正确的框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29854474/

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