我正在做一些简单的测试,将CALayer添加到UIView中.在我的iPhone 4应用程序的主控制器类中,我实现了viewDidLoad方法:
- (void)viewDidLoad { [super viewDidLoad]; NSLog(@"%s",__PRETTY_FUNCTION__); CALayer* ca = [[CALayer alloc] init]; [ca setBounds:self.view.bounds]; [ca setBackgroundColor:[[UIColor blueColor] CGColor]]; [self.view.layer addSublayer:ca]; }
蓝色背景仅占屏幕的1/4.
我想知道是不是因为我没有考虑视网膜显示?在这种情况下,最佳做法是什么?
添加了以下调试消息:
NSLog(@"frame w:%f h:%f",self.view.frame.size.width,self.view.frame.size.height); NSLog(@"bounds w:%f h:%f",self.view.bounds.size.width,self.view.bounds.size.height);
输出:
frame w:320.000000 h:460.000000 bounds w:320.000000 h:460.000000
解决方法
setContentsScale无效
[ca setContentsScale:[[UIScreen mainScreen] scale]];
但是,如果我使用
[ca setFrame:self.view.bounds];
有用.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。