我有一个按钮,在按钮动作中,我想通过从按钮滑动来显示我的UITableView,在单击单元格之后,它应该通过滑动效果来实现。我通过UIViewAnimation设置固定的y位置并更改高度从0到高度
tableview.hidden=FALSE;
tableview.frame = CGRectMake(0,myButton.frame.size.height,myButton.frame.size.width, 0);
[UIView animateWithDuration:AnimationTime animations:^{
tableview.frame = CGRectMake(tableview.frame.origin.x, tableview.frame.origin.x, tableview.frame.size.width, 200 );
} completion:^(BOOL finished) {
}];
但事实并非如此。我想要一个滑动效果。任何帮助都会很明显
答案 0 :(得分:1)
将此方法用于动画。 Provide a option for animation style.
There a lot of option in objective-c for animation style
[UIView animateWithDuration:15.0f delay:0.0f options:UIViewAnimationOptions animations:^{
tableview.frame = CGRectMake(tableview.frame.origin.x, tableview.frame.origin.x, tableview.frame.size.width, 200 );
} completion:^(BOOL finished)
{
}];
对于你的情况,我认为你应该使用UIViewAnimationOptionTransitionFlipFromTop
作为幻灯片表从上到下的动画选项。通过使用它,你的桌面视图在15秒内获得它的全高。你也可以管理它。
修改强>
单击单元格后,您希望桌面视图以幻灯片效果显示。比使用
[UIView animateWithDuration:2.0f delay:0.0f options:UIViewAnimationOptionTransitionFlipFromBottom animations:^{
tableview.frame = CGRectMake(tableview.frame.origin.x, tableview.frame.origin.x, tableview.frame.size.width, 0 );
} completion:^(BOOL finished)
{
}];
for slide up animation.
答案 1 :(得分:0)
问题不是动画,问题是你定义的框架。最简单的方法是定义开放和关闭框架并使用它们进行动画制作。见下文..
Define Open and Close frame
-(void)initComponents{
CGRect rect=tableView.frame;
rect.origin=myButton.center;
openFrame=rect;//Assign openFrame before changing the size.
rect.size=CGSizeZero;
tableView.frame=rect;
closeFrame=rect;//Assign closeFrame
}
调用 initComponents
中的viewDidLoad
功能设置tableview
的初始状态。现在,只需在您要呼叫的操作上使用以下功能。
-(void)openMenu{
[UIView animateWithDuration:.3 animations:^{
tableView.frame=openFrame;
}];
}
-(void)closeMenu{
[UIView animateWithDuration:.3 animations:^{
tableView.frame=closeFrame;
}];
}
多数民众赞成。它应该工作。
让我知道。欢呼声。