为整个应用程序应用圆angular

我怎样才能实现应用到整个视图的圆angular如截图所示(请注意导航栏和键盘的angular都圆了)?

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

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

例

好的,我已经在Twitter上向Twittelator Neue的开发者Andrew Stone发过一个问题,这是他的配方,经过Andrew的许可发布:

我们将在Neue上编写一个关于编码技巧的书! 我们覆盖了一个包含4个angular的图像

我们也有一个自定义的导航栏与可伸缩的图像瓦特/顶部圆形

所以这是我在自己的项目中做的:

 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是一个黑色的angular落透明的全屏图像。

他们可能在导航栏上使用包含圆angular的背景图片。

除了当我尝试使用TWTweetComposeViewController (显示键盘而不是tweet视图)时,iHunter的答案对我很好。 然后,我应该将覆盖作为AppDelegate.h的属性,并在tweetView之前,删除覆盖。 在鸣叫完成后,再次添加叠加。

 AppDelegate *delegate = [[UIApplication sharedApplication] delegate]; [delegate.overlay removeFromSuperlayer]; TWTweetComposeViewController *tweetSheet = [[TWTweetComposeViewController alloc] init]; tweetSheet.completionHandler = ^(TWTweetComposeViewControllerResult result) { AppDelegate *delegate = [[UIApplication sharedApplication] delegate]; [delegate.window.layer addSublayer:delegate.overlay]; }; [self presentModalViewController:tweetSheet animated:YES]; 

我怀疑窗口有圆angular,因为我不相信状态栏的高度大于20单位。 我怀疑这个窗口是简单地设置了一个黑色的背景(或者需要任何颜色来匹配状态栏,然后另一个视图放在顶部,顶部的视图有圆angular。angular落来帮助这个幻想。