ios - 为整个应用程序应用圆角

标签 ios core-graphics calayer

如何实现应用于整个 View 的圆角,如屏幕截图所示(请注意,导航栏和键盘角都是圆角)?

我尝试为 window.layerwindow.rootViewController.view 设置 cornerRadius = 10masksToBounds = YES .layer,但只有底部 View 的角变圆了,导航栏仍然保持正方形。

更新。cornerRadius 设置为 window.layer 实际上也会在顶部添加圆角,但这些角在状态栏下不可见,除非 cornerRadius 是大于 20。

Example

最佳答案

好的,我已经在 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, 0, overlayImg.size.width, overlayImg.size.height);
overlay.contents = (id)overlayImg.CGImage;
overlay.zPosition = 1;
[self.window.layer addSublayer:overlay];

overlay.png 是带有黑角的透明全屏图像。

关于ios - 为整个应用程序应用圆角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8735969/

相关文章:

iphone - 动画 CALayer 的蒙版大小变化

ios - 根据目标在 Storyboard中显示/隐藏 UI 元素

objective-c - 使用 ARC 绘制渐变时 CFArrayRef 和 NSArray 出现问题

ios - 在 Swift 中呈现 View Controller 时关于不可见标签栏的问题

ios - 预渲染的 Core Graphics 动画不流畅且占用内存

objective-c - 如何从文件创建 CGPath——即 SVG

ios - 如何在 Swift 中更改 UIColor patternImage 的相位?

ios - CALayer 路径动画不起作用

ios - UIFont - 如何获取系统细字体

IOS 应用程序将图像保存在内存中