我刚刚开始这个,但我遇到了一些麻烦。 Xcode找到该方法并将其接受为选择器。但每当我点击视图时都没有任何反应(我正在通过代码创建视图。它们在模拟器上看起来很好,但我添加到视图中的手势识别器不起作用。)
视图控制器中的viewDidLoad:
let tile = BoardTile(x: 0, y: 100, size: 50)
view.addSubview(tile.view)
我正在尝试做的事情
import UIKit
class BoardTile: NSObject{
let view: UIView
let label: UILabel
init(x:Int, y:Int, size:Int){
view = UIView(frame: CGRect(x: x, y: y, width: size, height: size))
view.backgroundColor = ViewController.baseColor
label = UILabel(frame: CGRect(x: 0, y: 0, width: size, height: size))
label.text = "1"
label.font = font
label.textAlignment = .Center
view.addSubview(label)
//***********HELP HERE, DOESN'T WORK***********//
let tap = UITapGestureRecognizer()
self.view.addGestureRecognizer(tap)
tap.addTarget(self, action: #selector(tapped))
}
func tapped(){
// Never prints when I tap:
print("tapped!")
}
}
答案 0 :(得分:1)
是什么让#34; tile"对象活着?如果" tile"实例在方法范围内死亡,视图和标签随之消失。