Ios UIImageView,更改。图像会导致重新显示-可以避免吗?

Ios UIImageView,更改。图像会导致重新显示-可以避免吗?,ios,swift,uiimageview,Ios,Swift,Uiimageview,我和 override func viewDidLayoutSubviews() { showDefaultCustomProcessing() } 在一个视图中,用户可以点击并更改图像 @IBAction func changeDoorTap(t:UITapGestureRecognizer) { thing.image = UIImage(named:...new image...) } 事实证明,无论何时更改.image,都会重新显示屏幕

我和

override func viewDidLayoutSubviews()
    {
    showDefaultCustomProcessing()
    }
在一个视图中,用户可以点击并更改图像

@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) 你能不能“关掉”重新布置,然后再打开

有没有一种方法可以更改.image但不强制重新播放


确定:为UIImageView提供宽度约束和高度约束。如果没有这些,它将采用其图像的大小。有了它们,它只会遵守约束。

不知道为什么需要这样做,但灵活地在活动状态中交换约束是常见的、受鼓励的、简单的;我总是这样做。苹果通过提供
activateConstraints
deactivateConstraints
命令使这一点变得非常简单。啊,明白了!谢谢你,我不知道我为什么要麻烦,因为你不接受我的答案,但我也回答了另一个问题。老兄,你可能有错误的想法,我是一个巨大的“勾选一切”推广人!你知道,我在营地等几天是有礼貌的。