【发布时间】:2020-05-18 11:17:08
【问题描述】:
我在玩游乐场(棒极了,对吧?)
如果我想使用模拟器进行捏合手势,我可以使用选项并移动鼠标来执行捏合手势。
相同的组合在 Playgrounds 中没有任何作用。
对于一些示例代码,您可以复制粘贴以下内容:
import UIKit
import PlaygroundSupport
class MyViewController: UIViewController {
let clickableView = UIView()
override func loadView() {
let view = UIView()
view.backgroundColor = .lightGray
clickableView.backgroundColor = .blue
view.addSubview(clickableView)
clickableView.translatesAutoresizingMaskIntoConstraints = false
clickableView.widthAnchor.constraint(equalToConstant: 200).isActive = true
clickableView.heightAnchor.constraint(equalToConstant: 200).isActive = true
clickableView.centerYAnchor.constraint(equalTo:view.centerYAnchor).isActive = true
clickableView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
self.view = view
}
override func viewDidLoad() {
super.viewDidLoad()
let pan = UIPanGestureRecognizer(target: self, action: #selector(handlePan(_:)))
clickableView.addGestureRecognizer(pan)
let pinch = UIPinchGestureRecognizer(target: self, action: #selector(handlePinch(_:)))
clickableView.addGestureRecognizer(pinch)
}
@objc func handlePinch(_ sender: UIPinchGestureRecognizer) {
guard let gestureView = sender.view else {
return
}
gestureView.transform = gestureView.transform.scaledBy(
x: sender.scale,
y: sender.scale
)
sender.scale = 1
}
@objc func handlePan(_ sender: UIPanGestureRecognizer) {
guard let targetView = sender.view else {return}
let translation = sender.translation(in: view)
targetView.center = CGPoint(x: targetView.center.x + translation.x
,y: targetView.center.y + translation.y)
sender.setTranslation(CGPoint.zero, in: view)
}
}
PlaygroundPage.current.liveView = MyViewController()
有没有办法在 Playgrounds 中测试捏合手势?
【问题讨论】:
标签: swift xcode swift-playground