如何在iPhone上的导航栏下滑动视图的动画?

时间:2009-10-23 14:34:25

标签: iphone animation

这与我的last question

有关

我有一个应用程序,我是从Xcode中的“基于导航的应用程序”模板创建的。 (我有一个带有名为RootViewController的UITableViewController子类的UINavigationController。)

该表显示了用户可以与之交互的字符串列表。导航栏左侧有标准的编辑/完成按钮,右侧有加号按钮。当用户触摸加号按钮时,我想从导航栏下方滑动从.xib文件加载的视图。

我尝试通过执行以下操作来实现它:

NSArray *xibContents = [[NSBundle mainBundle] loadNibNamed:@"NewNameView" owner:self options:nil];
UIView *view = [xibContents objectAtIndex:0];
[self.view addSubview:view];
view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y - 44, view.frame.size.width, view.frame.size.height);
[UIView beginAnimations:@"openAdd" context:nil];
view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y + 44, view.frame.size.width, view.frame.size.height);
[UIView commitAnimations];

(视图的高度为44像素。)这会使视图向下滑动,但它会覆盖第一个表格单元格。我希望桌面视图也可以向下滑动。

1 个答案:

答案 0 :(得分:2)

最好的方法是直接使用UITableView方法。

//Update your data model with the new row

[self.tableView beginUpdates];

NSArray* indexPaths = [[NSArray alloc] initWithObjects:[NSIndexPath indexPathForRow:0 inSection:0], nil];
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationTop];
[indexPaths release];

[self.tableView endUpdates];

您的新行看起来就像是来自导航栏。

有关批insert/deleting of row and sections的更多信息。