gpt4 book ai didi

ios - UIImageView,更改 .image 导致重新布局 - 可以避免吗?

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

我有一个类(class)......

override func viewDidLayoutSubviews()
{
showDefaultCustomProcessing()
}

在一个 View 中,用户可以点击并更改图像...

@IBAction func changeDoorTap(t:UITapGestureRecognizer)
{
thing.image = UIImage(named:...new image...)
}

事实证明,每当您更改 .image 时,它都会重新布局屏幕

(我不知道,但这是有道理的。)

不幸的是,viewDidLayoutSubviews 运行并且 CustomProcessing 返回到默认状态。那可不行。

作为解决方法,我这样做了......

var requestCustomLayoutAfterViewDidLayoutSubviews:Bool = false
@IBAction func changeDoorTap(t:UITapGestureRecognizer)
{
saveTemporaryCustomProcessing()
thing.image = UIImage(named:...new image...)
requestCustomLayoutAfterViewDidLayoutSubviews = true;
}
override func viewDidLayoutSubviews()
{
performDefaultCustomProcessing()
if (requestCustomLayoutAfterViewDidLayoutSubviews)
{
recoverTemporaryCustomProcessing()
}
requestCustomLayoutAfterViewDidLayoutSubviews = false;
}

使用这样的标志是一种糟糕的模式。

1) 有没有办法更改 .image强制不重新布局

(也许,通过在层级操作它,或其他什么?)

2) 你能不能“关闭”重新布局然后再打开它?

最佳答案

Is there a way to change a .image but force no relayout

当然:给 UIImageView 一个宽度约束和一个高度约束。没有这些,它会采用其图像的大小。有了它们,它只是服从约束。

关于ios - UIImageView,更改 .image 导致重新布局 - 可以避免吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37402619/

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