gpt4 book ai didi

ios - Swift LayoutSubviews 在每次用户交互时移动所有 subview

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

如果这个问题已经得到解决,我深表歉意,但我找不到它。

我认为在程序中的某些点将 UIImageView 从屏幕外动画到屏幕上足够简单。所以我创建了 UIImageView 并对其进行了编码,但出现了很多奇怪的行为。我已经将范围缩小到这样一个事实:layoutSubviews 在每次用户交互(每次按下按钮)时都会被调用,并且它会重置我所有项目的大小和位置。我对除此之外的每个屏幕项目都使用自动布局,因此这对于我想要自动布局的内容来说很好。但这一项不断被移回其起始位置。我是这样证明的:

override func viewDidLoad() {
super.viewDidLoad()
print("viewDidLoad")

let screenWidth = UIScreen.mainScreen().bounds.width
let screenHeight = UIScreen.mainScreen().bounds.height
print(image.center)
image.center = CGPointMake(screenWidth / 2, image.bounds.height / -2)
print(image.center)
}

override func viewWillLayoutSubviews() {
print("viewWillLayoutSubviews")
print(image.center)
}

override func viewDidLayoutSubviews() {
print("viewDidLayoutSubviews")
print(image.center)
}

这是我得到的结果:

viewDidLoad
(294.0, 228.0)
(160.0, -64.0)
viewWillLayoutSubviews
(160.0, -64.0)
viewDidLayoutSubviews
(294.0, 228.0)

我对这个 View 没有任何限制。想法?我想我可以存储该位置并不断手动移动它,但我确信某个地方有一个开关可以关闭特定项目的自动布局。我就是找不到。

感谢您的帮助...

最佳答案

图像必须具有被转换为约束的autoresizingMasks

通过执行以下操作禁用它:

image.translatesAutoresizingMaskIntoConstraints = false

关于ios - Swift LayoutSubviews 在每次用户交互时移动所有 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34665185/

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