在WKInterfaceTable

时间:2018-09-13 11:09:31

标签: ios swift watchkit

WatchKit故事板的布局如下

[标签]
[表格]
[按钮]

表最初有10个项目,当单击按钮时,setNumberOfRows将项目计数更新为5,并滚动到顶部。

我有一个问题,就是视图滚动太长而看不到任何内容。看起来滚动发生在更新表行计数之前的视图高度处。在这种情况下,如何滚动到顶部以使顶部标签可见?

class InterfaceController: WKInterfaceController {
    @IBOutlet weak var topLabel: WKInterfaceLabel!
    @IBOutlet weak var table: WKInterfaceTable!
    @IBOutlet weak var button: WKInterfaceButton!

    override func awake(withContext context: Any?) {
        super.awake(withContext: context)
        table.setNumberOfRows(10, withRowType: "MyRowType")
        populateRows()
    }

    func populateRows() {
        for row in 0..<table.numberOfRows {
            guard let rowController = table.rowController(at: row) as? MyRowController else { break }
            rowController.label.setText("Row \(row + 1)")
        }
    }

    @IBAction func onButtonClick() {
        table.setNumberOfRows(5, withRowType: "MyRowType")
        // This misses the top of the view :(
        scroll(to: topLabel, at: .top, animated: true)
    }

}

0 个答案:

没有答案