用按钮下拉UIView

时间:2011-08-15 16:13:02

标签: objective-c animation button uiview

好的,所以我想制作一个在当前触摸位置展开的菜单。我通过添加高度为1的menuView然后将高度更改为我想要的高度来实现此目的:

[UIView beginAnimations:NULL context:nil];          
CGRect fullRect;
fullRect = CGRectMake(menuView.frame.origin.x, menuView.frame.origin.y, 290, 180);
menuView.frame = fullRect;
[UIView commitAnimations];

现在的问题是这个menuView中有4个按钮,这些按钮首先出现,然后menuView在它们下面展开。任何想法如何使按钮出现 menuView而不是之前?

2 个答案:

答案 0 :(得分:0)

我会使用Block动画代替。这样,您可以轻松地在动画期间或之后显示按钮。尝试类似:

[UIView animateWithDuration:1.0
                       animations:^{ 
                         CGRect newRect = menuView.frame;
                         menuView.size.height += 289;
                         menuView.frame = newRect;
                       }
                       completion:^(BOOL finished){

                         [UIView animateWithDuration:0.1
                                          animations:^{ 
                                            button.hidden = NO;
                                          } 
                                          completion:^(BOOL finished){
                                            ;
                                          }];
                       }];

这将使按钮在动画结束时停止隐藏。当然,您可以在完成块中添加更多块来处理更多动画,并且很容易对其进行自定义。希望有所帮助!

答案 1 :(得分:0)

您必须设置menuView.clipsToBounds = YES,以便在menuView展开时,按钮不会显示在button1.alpha = 0.0; // Do this for each button before the [UIView beginAnimations]; button1.alpha = 1.0; // Do this during the animation block. 范围之外。

我还会添加以下内容,以便为按钮提供淡入效果。

{{1}}