你之前可能已经看到过它,它在像ScoutMob这样的消费时尚应用中变得非常流行。我正试图在启动时实现60%透明视图,覆盖我的主屏幕,解释如何使用主屏幕的功能并在点击时消失。
我已经完成了我的整个应用程序(它是从几年前开始使用.xib的,但是也可以用故事板格式解释,因为我可能会在其他iOs 5.0+应用程序中重用此功能。)
我制作单个视图没有问题,但暂时将一个视图叠加在另一个上面是我没有直观地想出来的。我将继续研究并包括我发现的任何有用的提示,以防其他人试图做同样的事情。
答案 0 :(得分:46)
// get your window screen size
CGRect screenRect = [[UIScreen mainScreen] bounds];
//create a new view with the same size
UIView* coverView = [[UIView alloc] initWithFrame:screenRect];
// change the background color to black and the opacity to 0.6
coverView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.6];
// add this new view to your main view
[self.view addSubview:coverView];
完成后,您可以将其删除:
[coverView removeFromSuperview];
Swift3版本:
// get your window screen size
let screenRect = UIScreen.main.bounds
//create a new view with the same size
let coverView = UIView(frame: screenRect)
// change the background color to black and the opacity to 0.6
coverView.backgroundColor = UIColor.black.withAlphaComponent(0.6)
// add this new view to your main view
self.view.addSubview(coverView)
删除它:
coverView.removeFromSuperview()
答案 1 :(得分:4)
使用UITextView和UIButton可以轻松完成。只需将UITextView放在屏幕上,其中包含您要显示的内容,使其成为屏幕的完整帧大小,并将背景颜色更改为背景alpha为.6的黑色背景。
[UIColor colorWithRed: 0 withGreen: 0 withBlue: 0 withAlpha: .6];
然后将按钮作为子视图放在顶部,使其成为屏幕的整个框架,并将其alpha设置为0.设置按钮的操作以隐藏文本视图和按钮。
示例:
UITextView* textview = [[UITextView alloc] initWithFrame:self.view.frame];
[textview setText: @"Text here"];
[textview setBackgroundColor: [UIColor colorWithRed: 0 withGreen: 0 withBlue: 0 withAlpha: .6]];
[textview setTextColor: [UIColor whiteColor]];
[self.view addSubview: textview];
UIButton* btn = [[UIButton alloc] initWithFrame:self.view.frame];
[btn setAlpha:0];
[btn addTarget:self action:@selector(method) forEvent:UIControlEventTouchUpInside];
[self.view addSubview: btn];
您可能想要检查addTarget:方法;我不确定这些是我头顶的正确参数。
答案 2 :(得分:1)
只需创建一个机制,确定它是否是应用程序的第一次启动,然后告诉主视图控制器在当前视图的顶部添加一个(可能是图像)视图,带有0.6 alpha
if (figureOutIfIsFirstLaunch)
{
UIImageView *myOverlay = [...];
myOverlay.frame = self.view.bounds;
myOverlay.alpha = 0.6;
[self.view addSubview:myOverlay];
}
答案 3 :(得分:1)
UIView
,将其命名为您想要的名称(dimBackgroundUIView
)然后设置
backgroundcolor为黑色并将alpha设置为0.1或0.2或.... [self.view addSubview:dimBackgroundUIView]; [self
addConstraintsForDimView];
if(dimBackgroundUIView) [dimBackgroundUIView
removeFromSuperview];
dimBackgroundUIView
。检查一下: iOS Dim background when a view is shown
并且不要忘记阅读代码下面的注释,以了解您必须做什么。
答案 4 :(得分:0)