如何在屏幕截圖中看到應用於整個視圖的圓角(請注意,導航欄和鍵盤圓角都是圓角的)?爲整個應用程序應用圓角
我試過window.layer
和window.rootViewController.view.layer
都設置爲cornerRadius = 10
和masksToBounds = YES
,但只有底部的視角變圓,導航欄仍然保持正方形。
更新。 設置cornerRadius
到window.layer
實際上增加了圓角頂端太多,但除非cornerRadius
是大於20
如何在屏幕截圖中看到應用於整個視圖的圓角(請注意,導航欄和鍵盤圓角都是圓角的)?爲整個應用程序應用圓角
我試過window.layer
和window.rootViewController.view.layer
都設置爲cornerRadius = 10
和masksToBounds = YES
,但只有底部的視角變圓,導航欄仍然保持正方形。
更新。 設置cornerRadius
到window.layer
實際上增加了圓角頂端太多,但除非cornerRadius
是大於20
好吧,我問安德魯·斯通,Twittelator抵達Neue開發商,在Twitter上,這是他的配方,發佈與安德魯的許可:
我們g在Neue上寫一本關於編碼技巧的書!我們覆蓋一個窗口W包含了一切4個角的圖像
我們也有可伸縮的圖像W /頂部圓潤
因此,這裏就是我在我自己的項目做了一個自定義導航欄:
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
是一個帶黑角的透明全屏圖像。
我懷疑窗口有圓角的棱角並沒有狀態欄下可見因爲我不相信狀態欄的高度大於20個單位。我懷疑窗口是簡單地設置了黑色背景(或者需要任何顏色來匹配狀態欄,然後另一個視圖放置在頂部,頂部的視圖具有圓角。同樣,任何其他子視圖都將具有圓角角落,以幫助這個錯覺。
圓角區域位於狀態欄的後面,所以如果你隱藏狀態欄,你會看到這個。 – Andy 2012-06-23 14:13:07
iHunter的答案對我很好,除非我嘗試使用TWTweetComposeViewController
,即顯示鍵盤而不是推文視圖。然後,我應該將覆蓋圖作爲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];
這樣做的時候記得要添加'#import'到你的類中,並將QuartzCore框架添加到你的項目中。 –
robhasacamera
2012-09-06 20:34:44
我發現這個應用程序:roundedCornerBL.png [email protected] roundedCornerBR。PNG [email protected] roundedCornerTL.png [email protected] roundedCornerTR.png [email protected] – 3lvis 2012-09-30 08:45:13
有人可以共享疊加圖像(S)? – fvisticot 2012-11-14 23:17:02