所以目前我的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()时,表不会生成动画。我的猜测是因为我不能动画滚动选择器并同时重新加载表。
我如何同时进行动画制作? 感谢。
答案 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()
即使它可能无法解决您的问题,我希望这会有所帮助。