gpt4 book ai didi

ios - 我的 UITapGestureRecognizer 不工作

转载 作者:行者123 更新时间:2023-11-30 11:31:53 25 4
gpt4 key购买 nike

我定义了一个名为 Bubble 的类,并且有一个名为 CreateBubbleView 的函数,我向其中添加了一个 tapGestureRecognizer。但它不起作用。这是我的代码。

var frame: CGRect = CGRect.zero
var shapeLayer = CAShapeLayer()
var bubbleView: UIView!

func CreateBubbleView(arcCenter: CGPoint,radius: CGFloat) {
bubbleView = UIView(frame: frame)
bubbleView.backgroundColor = UIColor.black

shapeLayer = CAShapeLayer()
let bubblePath = UIBezierPath(arcCenter: .zero, radius: radius, startAngle: 0, endAngle: 2 * CGFloat.pi, clockwise: true)
shapeLayer.path = bubblePath.cgPath
shapeLayer.position = arcCenter
shapeLayer.fillColor = UIColor(red: 1, green: 0.8, blue: 0.09, alpha: 0.5).cgColor

bubbleView.layer.addSublayer(shapeLayer)
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(HandleTap))
bubbleView.addGestureRecognizer(tapGestureRecognizer)

}

@objc func HandleTap() {
print(123)
}

在 viewController 中我编码了

override func viewDidLoad() {
super.viewDidLoad()

let bubble_0 = Bubble()
bubble_0.frame = view.frame
bubble_0.CreateBubbleView(arcCenter: view.center, radius: 80)
let bubbleView_0 = bubble_0.bubbleView
view.addSubview(bubbleView_0!)
}

最佳答案

let bubbleView_0 = bubble_0.bubbleView
view.addSubview(bubbleView_0!)

我注意到您创建了 bubble_0,但只添加了它的 bubbleView。 bubble_0将被释放(根据ARC)。所以你的水龙头将不再有目标。要解决此问题,您可以在 View Controller 中保留 bubble_0。

var bubble_0: Bubble!    
override func viewDidLoad() {
super.viewDidLoad()

bubble_0 = Bubble()
bubble_0.frame = view.frame
bubble_0.CreateBubbleView(arcCenter: view.center, radius: 80)
let bubbleView_0 = bubble_0.bubbleView
view.addSubview(bubbleView_0!)
}

关于ios - 我的 UITapGestureRecognizer 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50169810/

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