代码之家  ›  专栏  ›  技术社区  ›  Ben S

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

  •  0
  • Ben S  · 技术社区  · 15 年前

    这与我的 last question .

    我有一个应用程序,它是我在Xcode中根据“基于导航的应用程序”模板创建的。(我有一个uinavigationController,它有一个名为rootviewController的uitableviewController子类。)

    该表显示了用户可以与之交互的字符串列表。导航栏左边有标准的编辑/完成按钮,右边有一个加号按钮。当用户点击加号按钮时,我想从导航栏下的.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 回复  |  直到 15 年前
        1
  •  2
  •   gcamp    15 年前

    直接使用的最佳方法 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 .