How can I implement rounded corners applied to the whole view as seen on screenshot (note that both navigation bar and keyboard corners are rounded)?
I've tried setting cornerRadius = 10
and masksToBounds = YES
for both window.layer
and window.rootViewController.view.layer
, but only the bottom view corners are getting rounded, the navigation bar still stays square.
Update.
Setting cornerRadius
to a window.layer
actually adds rounded corners to the top too, but those corners are not visible under the status bar unless cornerRadius
is greater then 20.
Ok, I've asked Andrew Stone, a developer of Twittelator Neue, on Twitter, and here's his recipe, published with Andrew's permission:
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
So here's how I did it in my own project:
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
is a transparent fullscreen image with black corners.