Tableview 动画从左到右,带段控制

Posted

技术标签:

【中文标题】Tableview 动画从左到右,带段控制【英文标题】:Tableview animation left to right with segment control 【发布时间】:2018-04-02 02:02:12 【问题描述】:

我有一个带有 1 个部分的 UITableview,并且在该 tableview 的标题中有一个段控件。在我更改表格视图标题中的段后,我希望表格视图向左移动,另一个表格视图与从右侧进入的段控件的选定索引中的信息相关的新数据。这应该是动画。我已经尝试了这 4 件事,但它们都有自己的问题。最大的两个问题是我不想为节标题设置动画,并且数据集不同。部分标题应始终保持不变,因此 reloadSections 不起作用。 reloadRows 有我正在寻找的完美动画,但它不起作用,因为两组数据的行数不同。所以它在使用时会崩溃。

解决方案需要在表中没有数据的情况下工作,并且在获取数据后第一次重新加载。或者它重新加载到表中没有行并显示一个空状态屏幕。

//1
UIView.animate(withDuration0.7, delay: 0.0, options: .curveEaseOut, animations: 
    self.mainTableView.reloadData()
, completion: )

//2
self.mainTableView.reloadSections(IndexSet(integer: 0), with: .right)

//3
self.mainTableView.reloadRows(at: [indexpaths], with: .right)

//4
self.mainTableView.beginUpdates()
self.mainTableView.insertRows(at: [indexpaths], with: .right)
self.mainTableView.deleteRows(at: [indexpaths], with: .right)
self.mainTableView.endUpdates()

【问题讨论】:

【参考方案1】:

你为什么不直接改变同一个tableView中的数据源,把segment作为一个view放在tableView而不是header上。

【讨论】:

所以我在导航栏上使用了大标题,所以如果我把标题放在顶部,事情就会变得一团糟。即使我更改了数据源,上面列出的东西也不起作用。

以上是关于Tableview 动画从左到右,带段控制的主要内容,如果未能解决你的问题,请参考以下文章

从左到右使用动画进行 Segue

将 Push ViewController 动画更改为看起来像“pop”动画,从左到右进入

UIImageView从左到右改变动画

从左到右平滑地重复动画

核心动画从左到右

iOS 用从左到右的动画取消隐藏视图