Ios 不带NavigationController的水平UITableView

Ios 不带NavigationController的水平UITableView,ios,ipad,uitableview,Ios,Ipad,Uitableview,我将数据结构化为树(并在UITableView中显示),我希望以通常使用UINavigationController并将子视图推送到堆栈上的方式显示数据。问题是我的UITableView(在iPad应用程序中)只占屏幕的1/6(在这个应用程序中有一个UINavigationController处理其他全屏iPad屏幕,所以使用NavigationController控制表的级别是一个好方法) 有没有一种简单的方法可以在不使用NavigationController的情况下更改TableView的

我将数据结构化为树(并在UITableView中显示),我希望以通常使用
UINavigationController
并将子视图推送到堆栈上的方式显示数据。问题是我的
UITableView
(在iPad应用程序中)只占屏幕的1/6(在这个应用程序中有一个
UINavigationController
处理其他全屏
iPad
屏幕,所以使用
NavigationController
控制表的级别是一个好方法)

有没有一种简单的方法可以在不使用
NavigationController
的情况下更改
TableView
的级别,从而获得良好的视觉效果?现在我只是更改数据源并重新加载数据,但这会在屏幕上出现闪烁(用户无法真正看到,数据的结构是树状的)

我想创建一些
表格视图
,然后对表格的大小进行动画调整(从我们离开的表格视图的全宽调整为0,同时从0调整为另一个表格视图的宽度),以产生类似segue效果的效果-但我不确定这是否是一个好方法。

您可以尝试此代码(设置正确的值后:))

基本上,如果您使用UIView的子类,您可以使用
[UIView animateWith…]
方法来执行简单的动画,或者您可以使用CAAnimations/CABasicAnimation/CAAnimationGroup/CAKeyframeAnimation对UIView的子类执行更复杂的动画

如果您想要UIViewController的自定义转换,可以使用CATTransition。

您可以尝试此代码(在设置正确的值之后:)

基本上,如果您使用UIView的子类,您可以使用
[UIView animateWith…]
方法来执行简单的动画,或者您可以使用CAAnimations/CABasicAnimation/CAAnimationGroup/CAKeyframeAnimation对UIView的子类执行更复杂的动画


如果您想要UIViewController的自定义转换,可以使用CATTransition。

您可以使用
重新加载节:withRowAnimation:
UITableViewRowAnimationLeft
UITableViewRowAnimationRight
而不是默认的
重新加载数据。这看起来像是你正在寻找的推力


参考资料:

您可以将
重新加载节:withRowAnimation:
UITableViewRowAnimationLeft
UITableViewRowAnimationRight
一起使用,而不是默认的
重新加载数据。这看起来像是你正在寻找的推力

参考资料:

__block CGRect frame = tableView.frame;
    [UIView animateWithDuration:0.5 animations:^{
          frame.origin.x -=tableView.frame.size.width;
    } completion:^(BOOL finished) {
        frame.origin.x = yourViewThatContainsTheTable.frame.size.width
        tableView.frame = frame;
        [tableView reloadData];
        [UIView animateWithDuration:0.3 animations:^{
            frame.origin.x = 0;
            tableView.frame = frame;
        }];
    }];