- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// _scrollView = [UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self., <#CGFloat height#>)
self.view.backgroundColor = [UIColor whiteColor];
self.edgesForExtendedLayout = UIRectEdgeNone;
self.view.height -= 64;
_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.width, 200) style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
[self.view addSubview:_tableView];
_label = [[UILabel alloc] initWithFrame:CGRectMake(100, 200, 200, 90)];
_label2 = [[UILabel alloc] initWithFrame:CGRectMake(100, 350, 200, 90)];
[self.view addSubview:_label];
[self.view addSubview:_label2];
_link = [CADisplayLink displayLinkWithTarget:self selector:@selector(update)];
[_link addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
}
- (void)update {
static int i = 0;
_label.text = [NSString stringWithFormat:@"i:%d", ++i];
_label2.text = [NSString stringWithFormat:@"fps:%ld", 60/_link.frameInterval];
}
Link的启动方法就是addToRunloop。
label2可以显示fps值,非常好用!
如果用 NSDefaultRunLoopMode 那么tableView滚动时,label就不变了,i值不变了!所以最好改成commonMode!