我一直在尝试制作一个应用程序,当视图加载时,焦点自动转到UITableview的第一个单元格。
我试过使用UIFocusGuide,然后在prefferedFocusView()
方法中返回tableView,但是没有成功。
然后我写了这个代码
var viewToFocus: UIView? = nil {
didSet {
if viewToFocus != nil {
print("called1 ")
self.setNeedsFocusUpdate();
self.updateFocusIfNeeded();
}
}
}
override weak var preferredFocusedView: UIView? {
if viewToFocus != nil {
print("called2 ")
return viewToFocus;
} else {
return super.preferredFocusedView;
}
}
在视图中加载
self.viewToFocus = myTableView
但这并没有起到同样的作用。
最佳答案
我可以通过在tableView.remembersLastFocusedIndexPath = true
中设置viewDidLoad
来实现这一点,然后我实现了首选焦点的委托方法:
func indexPathForPreferredFocusedView(in tableView: UITableView) -> IndexPath? {
return NSIndexPath(forItem: 0, inSection: 0)
}
当
remembersLastFocusedIndexPath
-If YES, when focusing on a table view the last focused index path is focused automatically. If the table view has never been focused, then the preferred focused index path is used.
关于swift - View 加载时自动将焦点设置到UITableView的第一个单元格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38843671/