如何使用 UIButton 使 CADisplayLink 失效?
How do I invalidate CADisplayLink with a UIButton?
极度菜鸟。我定义了一个 CADisplayLink,然后我想稍后使用 UIButton 使它无效。我收到错误 'cannot find in scope' 因为(我假设)link 是在函数内部初始化的。无法弄清楚如何“进入”函数以使其失效。
代码:
```
函数 myDisplayLink()
{let displayLink = CADisplayLink(target: self, selector: #selector(myCycle))
displayLink.add(to: .current, forMode: RunLoop.Mode.default)
}
@IBAction func OFF(_ sender: UIButton)
{ ????? }
```
您可以在函数范围之外将其声明为可选,在 class 的根目录中,然后只需在函数中对其进行初始化,如下所示:
class: SomeClass {
var displayLink: CADisplayLink?
func myDisplayLink() {
displayLink = CADisplayLink(target: self, selector: #selector(myCycle))
displayLink!.add(to: .current, forMode: RunLoop.Mode.default)
}
@IBAction func OFF(_ sender: UIButton) {
displayLink!.invalidate()
}
}
极度菜鸟。我定义了一个 CADisplayLink,然后我想稍后使用 UIButton 使它无效。我收到错误 'cannot find in scope' 因为(我假设)link 是在函数内部初始化的。无法弄清楚如何“进入”函数以使其失效。 代码: ``` 函数 myDisplayLink() {let displayLink = CADisplayLink(target: self, selector: #selector(myCycle)) displayLink.add(to: .current, forMode: RunLoop.Mode.default) }
@IBAction func OFF(_ sender: UIButton)
{ ????? }
```
您可以在函数范围之外将其声明为可选,在 class 的根目录中,然后只需在函数中对其进行初始化,如下所示:
class: SomeClass {
var displayLink: CADisplayLink?
func myDisplayLink() {
displayLink = CADisplayLink(target: self, selector: #selector(myCycle))
displayLink!.add(to: .current, forMode: RunLoop.Mode.default)
}
@IBAction func OFF(_ sender: UIButton) {
displayLink!.invalidate()
}
}