gpt4 book ai didi

iOS 捏合手势控制堆栈 View 间距

转载 作者:行者123 更新时间:2023-12-02 18:48:37 26 4
gpt4 key购买 nike

我有一个基于日历的应用

app

我希望用户能够通过捏合来放大和缩小日历。这是我的代码:

let p = UIPinchGestureRecognizer(target: self, action: #selector(pinch))
view.addGestureRecognizer(p)

@objc func pinch(gestureRecognizer gesture: UIPinchGestureRecognizer) {
print("----------")
print("Spacing: \(timeStack.spacing)")
print("Gesture: \(gesture.scale)")
var spacing = timeStack.spacing * gesture.scale
if spacing > 70 {
spacing = 70
} else if spacing < 10 {
spacing = 10
}
timeStack.spacing = spacing
}

我有一个 UIStackView,其中包含名为 timeStack 的标签,我的代码根据手势的比例更改其间距。

这就是我运行它时发生的情况。它确实有效,但即使是最小的手势也会调整它的大小,而且非常不自然:

gif

我想知道如何改进我的代码,使其更像 iOS 日历应用程序中的捏合缩放。谢谢。

最佳答案

每次重置比例:

@objc func pinch(gestureRecognizer gesture: UIPinchGestureRecognizer) {
print("----------")
print("Spacing: \(timeStack.spacing)")
print("Gesture: \(gesture.scale)")
var spacing = timeStack.spacing * gesture.scale
if spacing > 70 {
spacing = 70
} else if spacing < 10 {
spacing = 10
}
timeStack.spacing = spacing
// reset gesture scale to prevent cumulative effect
gesture.scale = 1.0
}

关于iOS 捏合手势控制堆栈 View 间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67089757/

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