是否可以同时为UIPickerView和UITableview设置动画

时间:2016-07-07 03:32:42

标签: ios swift uitableview uipickerview

所以目前我的UITableViewController包含UITableView和UIPickerView。用户可以使用选择器选择如何过滤表中的数据。目前,当用户滚动选择器中的一行时,表格会更新,这就是我完成此操作的方法:

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {

  // Code to update table data...

  self.tableView.reloadSections(NSIndexSet(index: 0), withRowAnimation:UITableViewRowAnimation.Automatic)
  self.tableView.endUpdates()
  return title
}

不幸的是,调用reloadSections()时,表不会生成动画。我的猜测是因为我不能动画滚动选择器并同时重新加载表。

我如何同时进行动画制作? 感谢。

1 个答案:

答案 0 :(得分:0)

基本上,我认为它可以正常工作。 我曾经使用过一次这样的代码片段,它也没有用。我记得我通过将UITableView的插座拖到ViewController然后调用

来解决它
 @IBOutlet weak var myTableView: UITableView?

    ...


func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {

  // Code to update table data...

  self.myTableView.reloadSections(NSIndexSet(index: 0), withRowAnimation:UITableViewRowAnimation.Automatic)
  self.myTableView.endUpdates()
  return title
}

...因为self.tableView没有显式引用您希望它引用的UITableView。要检查它是否确实存在 - 您是否尝试过更换

self.tableView.reloadSections(NSIndexSet(index: 0), withRowAnimation:UITableViewRowAnimation.Automatic)

self.tableView.reloadData()

即使它可能无法解决您的问题,我希望这会有所帮助。