如何在屏幕截图中看到应用于整个视图的圆角(请注意,导航栏和键盘角都是圆角的)?
我已经尝试为window.layer和window.rootViewController.view.layer设置cornerRadius = 10和masksToBounds = YES,但只有底部视角变圆,导航栏仍保持方形.
更新.
将cornerRadius设置为window.layer实际上也会在顶部添加圆角,但在状态栏下不会显示这些角,除非cornerRadius大于20.
解决方法
好的,我在Twitter上问过Twittelator Neue的开发者Andrew Stone,这是他的食谱,在Andrew的允许下发布:
We’re going to write a book on coding tricks in Neue! We overlay a window w an image containing 4 corners over everything
We also have a custom nav bar with a stretchable image w/ tops rounded
所以这就是我在自己的项目中做到的方式:
UIImage *overlayImg = [UIImage imageNamed:@"overlay.png"]; CALayer *overlay = [CALayer layer]; overlay.frame = CGRectMake(0,overlayImg.size.width,overlayImg.size.height); overlay.contents = (id)overlayImg.CGImage; overlay.zPosition = 1; [self.window.layer addSublayer:overlay];
overlay.png是一个带黑角的透明全屏图像.