4
我有一個加載SKSpriteNode到場景中的斯威夫特+ SpriteKit應用,註冊一個UIPinchGestureRecognizer,以及縮放手勢用一個簡單的處理函數,像這樣的手柄:如何限制放大SpriteKit
func zoom(_ sender: UIPinchGestureRecognizer) {
// Don't let the map get too small or too big:
if map.frame.width >= 1408 && map.frame.width <= 3072 {
map.run(SKAction.scale(by: sender.scale, duration: 0))
}
print(map.frame.width)
}
然而,捏仍然會使精靈節點的大小小於指定的限制,然後當我嘗試再次鬆開時,處理程序突然識別出我已經放置的限制,並且不會允許和取消捏手勢。
我試圖做與識別的規模屬性同樣的事情:
func zoom(_ sender: UIPinchGestureRecognizer) {
// Don't let the map get too small or too big:
if sender.scale >= 0.9 && sender.scale <= 2.1 {
map.run(SKAction.scale(by: sender.scale, duration: 0))
}
print(map.frame.width)
}
但這是更加古怪:精靈節點將停止與捏越來越小,但隨後將增長與聯合國極其巨大的-捏。
什麼是正確的方式來限制捏手勢?