正如你们中的一些人可能已经注意到的那样,大多数(如果不是全部)系统应用程序都会显示带圆角的屏幕。我的意思是,设备屏幕的四个角看起来很圆润。
然而,大多数第三方应用程序都没有(角落是90度),但我见过一些像Facebook的信使。许多其他人都有此效果,但仅限于启动画面(可能只是对default.png图像文件的修改)
是否有财产可以达到这种效果?
答案 0 :(得分:16)
如果你想在ENTIRE应用程序上使用圆角,而不必使用你想要的每个不同的View Controller显式重新创建它们,请在AppDelegate中调用它:(didFinishLaunching方法)
[self.window.layer setCornerRadius:20.0];
[self.window.layer setMasksToBounds:YES];
self.window.layer.opaque = NO;
不要忘记:
#import <QuartzCore/QuartzCore.h>
这种方式更好,因为它在WINDOW上创建动画,而不是VIEW。因此,您可以使用90˚角设计UI的其余部分,它们将自动舍入。一次调用它会容易得多。
对光栅化图层的性能也可能更好,特别是如果它滞后:
[self.window.layer setShouldRasterize:YES];
[self.window.layer setRasterizationScale:[UIScreen mainScreen].scale];
以上将强制动画/图形更改“像图像一样”而不会使UI太重。性能将提高,并根据Retina或非Retina屏幕进行光栅化。 (这是[UIScreen]调用,因为“.scale”为视网膜返回2.0,非视网膜返回1.0。非常非常简单。
希望这有帮助!如果是这样,我会回来看看! :)
答案 1 :(得分:1)
以下将围绕视图的角落。你可以将它放在viewDidLoad:
中#import <QuartzCore/QuartzCore.h>
view.layer.cornerRadius = 7;
答案 2 :(得分:1)
// Import QuartzCore.h at the top of the file
#import <QuartzCore/QuartzCore.h>
self.view.layer.backgroundColor = [UIColor orangeColor].CGColor;
self.view.layer.cornerRadius = 20.0;
self.view.layer.frame = CGRectInset(self.view.layer.frame, 20, 20);
查看Introduction to CALayers Tutorial。你将获得良好的开端。
答案 3 :(得分:0)
@PsycoDad:@ cocotouch的答案补充修复了屏幕的上半部分
CGFloat statusBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height;
CGRect screenBounds = [[UIScreen mainScreen] bounds];
self.window.layer.frame = self.window.layer.bounds =
CGRectMake(0,
statusBarHeight,
screenBounds.size.width,
screenBounds.size.height - statusBarHeight);