gpt4 book ai didi

ios - 调用 UIPinchGestureRecognizer 后更改 UIView 的边界

转载 作者:行者123 更新时间:2023-11-30 12:20:04 24 4
gpt4 key购买 nike

我注意到一个问题,我调整了 View 的大小,但边界似乎没有改变(因此在捏住 View 后,您必须使用 UIView 的边缘进一步捏合)

@IBAction private func handlePinch(_ sender: UIPinchGestureRecognizer) {
if let view = sender.view {
view.transform = view.transform.scaledBy(x: sender.scale, y: sender.scale)
sender.scale = 1
}
}

我找到了一个可能的 stackoverflow 答案 iphone uiview - resize frame to fit subviews这提供了调整大小以适应 subview 的扩展,但对象的行为没有明显的差异。

@IBAction private func handlePinch(_ sender: UIPinchGestureRecognizer) {
if let view = sender.view {
view.transform = view.transform.scaledBy(x: sender.scale, y: sender.scale)
sender.scale = 1
}
self.resizeToFitSubviews()
}


extension UIView {
func resizeToFitSubviews() {
let subviewsRect = subviews.reduce(CGRect.zero) {
$0.union($1.frame)
}
let fix = subviewsRect.origin
subviews.forEach {
$0.frame.offsetBy(dx: -fix.x, dy: -fix.y)
}
frame.offsetBy(dx: fix.x, dy: fix.y)
frame.size = subviewsRect.size
}

如何使捏合(以及最终具有相同问题的handleRotate函数)正确调整边界?

最佳答案

更改变换不会更改边界。

请引用这里的答案: Does the bounds of a uiview change when a pinch gesture is used on it?

关于ios - 调用 UIPinchGestureRecognizer 后更改 UIView 的边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44901427/

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