如何禁用深色透明色的背景视图?

Posted

技术标签:

【中文标题】如何禁用深色透明色的背景视图?【英文标题】:How to disable background view with dark transparent color? 【发布时间】:2015-02-14 13:25:26 【问题描述】:

我为从屏幕底部滑动的 uiview 创建了动画,但我希望在视图滑动到屏幕后禁用 bg 视图并使用这样的深色 bg:

我该怎么做?此外,当我点击深色透明视图时,我希望它滑出并启用 bg 视图。

这就是我做滑动动画的方式:

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex 

    if (buttonIndex == 0) 

     else if (buttonIndex == 1) 

        self.slidingView.hidden = NO;
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.3];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        self.slidingView.frame = CGRectMake(0,0,320,20);
        self.view.frame = CGRectMake(0,0,320,460);
        [UIView commitAnimations];
        self.view.userInteractionEnabled = NO;
    

谢谢

【问题讨论】:

【参考方案1】:

我在最近的一个项目中做了类似的事情。 不要只添加一个包含选取器的视图,而是添加一个父视图。 因此,您将添加到视图控制器的是一个视图,该视图将与您的屏幕大小相同,具有透明的黑色背景,然后使用您的选择器和您的自定义动画向其中添加一个子视图。

另一种方法是在您的视图控制器中拥有一个最初隐藏的视图,当您显示您的选择器视图时您会显示它。

如果你能分享你的代码,我可以更好地帮助你。

编辑:

-在您的视图控制器中添加一个具有相同宽度和高度的视图,具有前导、顶部、尾随和底部约束。

-为这个视图提供一个出口(例如:backgroundView)

-在您的viewDidLoad: 中添加以下行:

self.backgroundView.hidden=YES;
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(yourcodeToCloseTheView)];
singleTap.numberOfTapsRequired = 1;
[self.backgroundView addGestureRecognizer:singleTap];

-在你的actionSheet:clickedButtonAtIndex: 中添加这一行:

self.backgroundView.hidden=NO;

只需确保 backgroundView 在 IB 中的 pickerView 后面即可。

希望有帮助

【讨论】:

谢谢哥们,我编辑了我的问题并添加了滑动视图的方法,它是一种操作表方法,因为滑动此视图取决于操作表按钮。我还可以分享哪些代码来帮助您帮助我:)?我明白了你所说的,但如果你能用一些代码分享它会有所帮助。顺便说一句,我正在使用 xibs 如果你能在 github 上分享你的项目或者......那就太好了 很遗憾我不能在 github 上分享它,但我可以分享你需要的代码片段,让我知道你缺少什么数据 :)

以上是关于如何禁用深色透明色的背景视图?的主要内容,如果未能解决你的问题,请参考以下文章

在C#.net代码中如何生成透明背景的png图片

如何修改窗口背景颜色

Delphi如何制造透明背景窗体

为现有网站添加深色背景封面

半透明色的动画效果很奇怪

SwiftUI:如何使列表视图透明?如何更改列表视图背景颜色?