如何实现从屏幕底部弹出tableview的效果?

时间:2011-05-06 07:12:29

标签: objective-c cocoa-touch

我是Xcode和Objective-c的新手。最近我想做一个关于弹出tableviews的任务。按下按钮时,应从屏幕底部弹出tableview。 tableview将只包含几个项目,所以我不想占据全屏。我阅读了手册并找到了UIModalPresentationStyle,但它似乎不符合我的要求。那么我可以使用哪些更准确的方法呢?

3 个答案:

答案 0 :(得分:1)

您可以使用以下代码创建动画块。将表格视图的框架设置为(0,480,320,0)当您点击按钮时,更改动画块中的表格视图的框架并使其成为 CGRectMake(0,200,320,280)或者别的什么。

   [UIView beginAnimations:@"AnimateTableView" context:view];
   [UIView setAnimationDuration:0.5];
   [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

   tableView.frame = CGRectMake(0, 200 , 320, 280);

   [UIView commitAnimations];

用于再次隐藏它的相同动画块但是再次开始设置为CGRectMake(0,480,320,0)。这应该适用于你的情况。

答案 1 :(得分:1)

虽然@Bharat J的答案是正确的,但这些方法在iOS 4.0中已弃用。

最新最好的实施是+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations

实施为:

[UIView animateWithDuration:0.5 animations: ^{
        tableView.frame = newFrame;
    }
];

答案 2 :(得分:0)

另一种选择是使用UIActionSheet并将uitableview添加为子视图。

这是一个非常类似的问题,关于如何添加具有类似效果的UIPickerview。

Add UIPickerView & a Button in Action sheet - How?