我有一个UIView,并添加了一个UIImageView作为它的子项。我稍后通过另一个UIButton事件更改UIView的位置。
如果我更改UIImageView的图像,则UIView-股份有限公司所有盾牌-将移回初始位置。
有人能解释一下这里发生了什么吗:-D我如何保持UIView的新位置?
这里有一个图像屏幕,我采取可视化问题
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var number: UIImageView!
@IBOutlet weak var popup: UIView!
@IBAction func openPopup(sender: UIButton) {
self.popup.center = sender.center
//old position: (190.5, 124.0) - new Position: (173.0, 414.0)
}
@IBAction func updateImage(sender: UIButton) {
self.number.image = UIImage(named: "img-1")
}
}
更新:
我发现,如果我停用自动布局,上面的代码就可以工作。这里有一个使用自动布局的解决方案:自动布局中心UIView在其中心的另一个UIView之上
你确定吗?在调用updateImage
之后,您是否通过记录popup.frame.origin
进行了检查?您是否正确设置了number
uiimageview的clipsToBounds
和contentMode
属性?
我发现,如果我在"文件检查器"选项卡的"界面生成器文档"部分禁用"使用自动布局",上述代码就可以工作。
此外,这里还有一个使用自动布局和约束的工作解决方案:
自动布局中心UIView在其中心的另一个UIView之上