如何在应用程序屏幕上制作圆角?

时间:2012-03-02 04:41:50

标签: iphone screen

正如你们中的一些人可能已经注意到的那样,大多数(如果不是全部)系统应用程序都会显示带圆角的屏幕。我的意思是,设备屏幕的四个角看起来很圆润。

然而,大多数第三方应用程序都没有(角落是90度),但我见过一些像Facebook的信使。许多其他人都有此效果,但仅限于启动画面(可能只是对default.png图像文件的修改)

是否有财产可以达到这种效果?

4 个答案:

答案 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);