如何在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中将白色背景放在视图中[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SwiftUI 中将视图的背景设置为灰色?

如何在对话框中将关闭的图像视图放在右上角并留有边距?

如何在 iOS 7 上将状态栏内容颜色设置为白色

如何在 iOS 中将选定的背景视图添加到 iCarousel?

如何在 iOS 的 swift 中将浮动操作按钮放在 tableView 中?

iOS7 uitablecell白色背景[关闭]