如何在iOS中将白色背景放在视图中[关闭]
Posted
技术标签:
【中文标题】如何在iOS中将白色背景放在视图中[关闭]【英文标题】:how to put a white background in iOS against a view [closed] 【发布时间】:2013-12-11 00:03:19 【问题描述】:我在 ios 中有一个视图,我希望有一个类似于下图中的白色矩形背景(带有弯角)。任何人都可以帮助我如何在 iOS 中实现这一目标
【问题讨论】:
【参考方案1】:您需要将控制器的视图设置为蓝色背景。然后您将添加一个新的子视图,该子视图具有所需的圆角半径的白色背景:
[self.view setBackgroundColor:[UIColor blueColor]];
UIView *roundedBox = [[UIView alloc] initWithFrame:CGRectMake(20, 60, 280, 280)];
[roundedBox setBackgroundColor:[UIColor whiteColor]];
[roundedBox.layer setCornerRadius:10];
[self.view addSubview:roundedBox];
您需要确保导入 QuartzCore,因为需要直接操作图层,这就是您设置角半径的方式:
#import <QuartzCore/QuartzCore.h>
【讨论】:
谢谢胡基尔。我将添加蓝色圆形框。但是按钮和标签消失了。你能帮我看看如何将它们放在子视图中 我明白了。我需要做的是添加语句 [self.view addSubview:label];在hukir给出的代码之后。谢谢胡基尔【参考方案2】:view.backgroundColor = [UIColor whiteColor];
view.layer.cornerRadius = 10;
view.layer.maskToBounds = YES;
【讨论】:
谢谢。我相信这会将整个背景颜色设置为白色。是否有可用的控制器来完成此操作。谢谢【参考方案3】:一个更困难但更强大的方法是bezierPathWithRoundedRect:cornerRadius。您将不得不创建一个新的 UIView。就我个人而言,我会将 UIView 子类化,并在创建它之后,添加如下内容:
UIBezierPath *roundedCornerRectangle = [UIBezierPath bezierPathWithRoundedRect:self.bounds cornerRadius:10]; // create bezier path
UIRectFill(self.bounds); // initialize rectangle onto view, will appear with default settings which is a black rectangle
[[UIColor whiteColor] setFill]; // set color to white
[roundedCornerRectangle fill]; // fill rectangle with color
[self drawShape];
【讨论】:
这个可以通过容器视图实现吗? UIBezierPath 会保留其他视图,例如按钮和标签。请告诉我以上是关于如何在iOS中将白色背景放在视图中[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 中将选定的背景视图添加到 iCarousel?