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