0

我不知道如何处理动画,我希望在半透明视图中淡入淡出,并在点击背景时将其关闭,就像 Tumblr 应用程序在他们的撰写屏幕上一样。

这就是我到目前为止所拥有的。它添加了半透明视图,但没有像 Tumblr 那样的淡入淡出效果。

UIView *modalView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[modalView setOpaque: NO];
[modalView setBackgroundColor: [UIColor colorWithAlphaComponent: 0.9];
[[self view] addSubview: modalView];
4

3 回答 3

1

我不确定你到底想要达到什么目的,但看起来你需要结合UIView动画和UITapGestureRecognizer

使用此代码淡入视图(适当调整开始和结束 alpha 值):

[modalView setAlpha:0];
[UIView animateWithDuration:0.5f
                      delay:0.0f
                    options:UIViewAnimationOptionCurveEaseInOut
                 animations:^(void) {
                    [myView setAlpha:1.0;
                 }
                 completion:NULL];

这将创建一个手势识别器:

UITapGestureRecognizer *tapgr = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(didTapView)];
tapgr.cancelsTouchesInView = NO;
[timeView addGestureRecognizer:tapgr];

didTapView是您关闭视图的方法。

希望这可以帮助。

于 2013-01-31T14:54:44.767 回答
0

您是否尝试在此半透明视图中添加点击识别器?请参阅UITapGestureRecognizer 类

于 2013-01-31T14:14:47.157 回答
0

如果我理解正确,您的问题是没有动画。动画很简单:

UIView *modalView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[modalView setOpaque: NO];
[modalView setBackgroundColor: [UIColor colorWithAlphaComponent: 0.9];
[[self view] addSubview: modalView];

[modalView setAlpha: 0];
[UIView animateWithDuration: 0.5 animations: ^{
    [modalView setAlpha: 1];
}

探索UIView完成处理程序等的其他动画方法。

于 2013-01-31T15:11:51.180 回答