gpt4 book ai didi

ios - 如何对特定按钮使用 CADisplayLink?

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

我正在尝试制作一个应用程序,我必须触摸在屏幕上移动的按钮。我正在使用 CADisplayLink 来实现此目的。我的代码中的问题是它创建了一个新按钮而不是使用特定的按钮:

@IBOutlet var label: UILabel!
@IBOutlet var button2: UIButton!
@IBAction func button1(sender: UIButton) {
label.hidden = true
button2 = UIButton(type: UIButtonType.System) as UIButton
button2.frame = CGRectMake(120, 400, 100, 100)
button2.setTitle("Test Button", forState: UIControlState.Normal)
button2.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(button)
let displayLink = CADisplayLink(target: self, selector: "handleDisplayLink:")
displayLink.addToRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode)
}
func handleDisplayLink(displayLink: CADisplayLink) {
var buttonFrame = button.frame
buttonFrame.origin.y += -2
button2.frame = buttonFrame
if button2.frame.origin.y <= 50 {
displayLink.invalidate()
}
}
func buttonAction(sender: UIButton) {
sender.alpha = 0
label.hidden = false
}
override func viewDidLoad() {
super.viewDidLoad()
label.hidden = true
}

谢谢。安东

最佳答案

您可以删除

button2 = UIButton(type: UIButtonType.System) as UIButton
button2.frame = CGRectMake(120, 400, 100, 100)
button2.setTitle("Test Button", forState: UIControlState.Normal)

只需在 Interface Builder 中设置这些属性即可。

还有这一行:

 self.view.addSubview(button)

编辑问题后不再有意义,但如果您的按钮是 IBOutlet,则也没有必要。

这一行:

var buttonFrame = button.frame

仅当按钮是在其他地方声明的 IBOutlet 时才有意义。

关于ios - 如何对特定按钮使用 CADisplayLink?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34147020/

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