在Xcode
中,当我创建一个新的视图控制器来包含一个表视图时,我有两个选项
UITableViewController
UITableViewDelegate
和UITableViewDataSource
协议的新UIViewController
假设我正确地实现了协议的所有必需和可选方法,使用UITableViewController
是否有任何优势(除了不必编写方法存根)?也就是说,有没有什么东西(内存管理、缓存等)在UITableViewController
类中的幕后实现使得选项1比选项2更好的选择?
发布于 2013-01-23 02:40:41
无论采用哪种方法,都必须编写委托和协议方法。
当您需要一个带有表视图的视图控制器时,您应该选择使用UIViewController
而不是UITableViewController
,只有两个可能的原因:
以下是UITableViewController
为您完成的所有需要复制的操作:
UITableView
.
UITableView
.
setEditing:animated:
方法,以根据刷新控件(从iOS 6开始)中的刷新控件( up view.
setEditing:animated:
属性,以在viewWillAppear:
方法中最后选定的行设置表。contentInset
(从iOS 7开始)。当键盘出现时,发布于 2015-09-04 13:50:33
0行代码的键盘优势
当屏幕上的键盘出现时,UITableViewController
提供了自动滚动,而普通的UIViewController
没有。
UITableViewController
可以在视图内可靠地移动编辑过的区域,而无需摆弄键盘通知。自从iOS诞生以来,它就这样做了,而键盘通知发生了变化,很少提供向后兼容性。
只要视图需要编辑(比如登录屏幕),就可以考虑使用UITableViewController
,并通过0行的代码充分利用这一独特的特性。
不幸的是,采用UITableViewDelegate
协议的常规UIViewController
不能提供该功能。
从iPhone OS诞生之初到如今的。
有关GitHub和Swift Recipes的更多详细信息,请访问►找到此解决方案。
发布于 2013-01-23 02:28:30
UITableViewController
允许在iOS5上使用静态表
https://stackoverflow.com/questions/14465447
复制相似问题