【问题标题】: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;
    }
}

谢谢

【问题讨论】:

    标签: ios objective-c uiview uiviewanimationtransition


    【解决方案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 上分享它,但我可以分享你需要的代码片段,让我知道你缺少什么数据 :)
    猜你喜欢
    • 1970-01-01
    • 2016-12-10
    • 2022-01-17
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多