我有以下代码,它应该使每个帧都调用drawFrame,但它不会:
- (void)viewDidLoad
{
[super viewDidLoad];
displayLink = [viewReference.window.screen displayLinkWithTarget:(self) selector:@selector(drawFrame)];
[displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
}
- (void) drawFrame:(CADisplayLink*)sender
{
thel.text = @"test";
}
dispayLink是指向CADisplayLink的指针。 thel连接到我视图中的标签。此视图连接到viewReference。 self是ViewController。 drawFrame被声明为
- (void) drawFrame:(CADisplayLink*)sender;
当我在viewDidLoad中测试时,可以设置文本。
似乎从未调用过drawFrame。该应用程序基于Xcode 4.2s空应用程序模板和自定义故事板文件(我之后添加它而不是在创建时选择使用故事板)。除视图控制器,视图和标签外,它是空的。
我是新手。调用[[NSRunLoop currentRunLoop]运行时] iOS 5.0模拟器根本不显示应用程序。无论如何,currentRunLoop应该是默认的主runLoop。
答案 0 :(得分:2)
也许您需要设置CADisplaylink'frameInterval'属性:
displayLink.frameInterval = someRate (1-60);
另一个有趣的好奇心是
weak private var _anim : CADisplayLink? // mysteriously does nothing
显示链接,由于未知原因,如果变量很弱,则不会运行。
private var _anim : CADisplayLink? // rock on