通过添加带阻力的UIDynamicItemBehavior,我可以轻松地使捕捉速度变慢.但是,阻力的默认值是0.0,这对我来说仍然太慢.将阻力设置为负值没有任何影响,它似乎移动到0.0.
如何让UISnapBehavior更快?
(以下是使捕捉速度变慢的示例):
UIDynamicItemBehavior *dynamicItemBehavior = [[UIDynamicItemBehavior alloc] initWithItems:@[button]];
dynamicItemBehavior.resistance = 50.0; // This makes the snapping SLOWER
UISnapBehavior *snapBehavior = [[UISnapBehavior alloc] initWithItem:button snapToPoint:point];
[self.animator addBehavior:button.dynamicItemBehavior];
[self.animator addBehavior:button.snapBehavior];
Run Code Online (Sandbox Code Playgroud) 我有一个实施的问题子类来NSView实现NSCoding.
似乎声明init(coder: NSCoder)在NSView和中是冲突的NSCoding.
NSView如今说它可以使用,但NSCoding仍然说它是不可用的.
当我尝试覆盖init(coder: NSCoder)并执行自定义初始化时,Xcode 6.1给出了一条错误消息:
一个不可用的初始化程序无法链接到用'init?'编写的可用初始化程序'init(coder :)'
我该如何做我班级的自定义初始化?
这是一个愚蠢的例子,我扩展了一个视图,我想为我的视图保留一个额外的点击计数器.
import Cocoa
import Foundation
class MyView: NSView, NSCoding {
var clickCounter:Int = 0
required init(coder: NSCoder) {
super.init(coder: coder)
coder.encodeObject(self.clickCounter,
forKey: "clickCounter")
}
override func encodeWithCoder(coder: NSCoder) {
super.encodeWithCoder(coder)
coder.encodeObject(self.clickCounter, forKey: "clickCounter")
}
override func mouseDown(theEvent: NSEvent) {
clickCounter++
}
}
Run Code Online (Sandbox Code Playgroud)
