ios - Swift TapGestureRecognizer 和 UIButton
问题描述
我是 Swift 新手,所以对于任何类型的错误,我深表歉意。在我的视图控制器中,我有一个视图 CanvasView,我希望用户单击一个按钮并在点击的位置添加一个形状。我创建了一个名为 ShapeSquare 的 uiview,我有三个具有三种不同形状的按钮。不幸的是,我不明白我错在哪里。这只是代码的一部分。任何建议将不胜感激!
@IBOutlet weak var CanvasView: CanvasView!
override func viewDidLoad() {
super.viewDidLoad()
let tapGR = UITapGestureRecognizer(target: self, action: Selector(("didTap")))
tapGR.numberOfTapsRequired = 1
CanvasView.isUserInteractionEnabled = true
CanvasView.addGestureRecognizer(tapGR)
}
func didTap(tapGR: UITapGestureRecognizer) {
let tapPoint = tapGR.location(in: CanvasView)
let shapeView = ShapeSquare(origin: tapPoint)
CanvasView.addSubview(shapeView)
}
@IBAction func SquareShape(_ sender: UIButton) {
CanvasView.setNeedsDisplay()
}
解决方案
1-
let tapGR = UITapGestureRecognizer(target: self, action: #selector(didTap(_:)))
2-
@objc func didTap(_ tapGR: UITapGestureRecognizer) {
推荐阅读
- selenium - How to use Selenium executable jars and integrate them with Jenkins
- c# - 我想知道 Xamarin 表单是否支持 watchOS 应用程序?
- vb.net - Simulate partially pressed keys in VB.net
- python - 如何修复“TypeError:printSong() 缺少 1 个必需的位置参数:'self'”
- sql - Apache Ignite 中的简单 SELECT(*) 查询非常慢
- java - How to apply Aero-Snap to an borderless Stage
- html - 有没有办法让导航栏标志响应?
- javascript - $.each 重复 10 两次
- c# - 在db中的gridview中插入复选框的选中值不起作用
- java - 使用什么 mvn 插件可以帮助为属性设置动态值?