我一直在尝试制作一个应用程序,当视图加载时,焦点自动转到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/

10-09 00:38