xcode Simulator延迟了页面的显示

时间:2018-01-10 01:36:57

标签: xcode ios-simulator ios11 swift4

升级到XCode 9.2,现在我的应用程序在ios模拟器上表现不佳。部署到物理设备时,它仍可正常运行。

问题是页面需要10秒到1分钟才能刷新。例如在tableview.reloadDate()之后。我确信数据的重新加载是立即发生的,只是在长时间延迟之后页面才会被显示

有趣的是,如果我点击模拟器屏幕,响应就好像我点击了刷新(但尚未显示)的页面。

我不认为这是一个动画问题,我已经确保在模拟器调试菜单中“慢动画”#39;没有切换。此外,我还为Windows Scale'优化了渲染。检查。

EDIT 为了提供更多信息,我提供了一个示例代码。如果使用Xcode 9.2的人可以创建单页应用程序并将tableView放入View Controller,然后将下面的代码添加到swift文件并在11.2模拟器上运行它并让我知道它是怎么回事我会非常感激。请注意,当您点击一个单元格时,它应该使用下一级数据重绘表格,对我而言,这将花费一分钟。如果您在更新屏幕之前点击,则会立即重新绘制页面(但就像您点击了尚未绘制的页面一样)。

或者只是仔细阅读代码,看看你是否能发现导致问题的东西。

import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
var level = 1
let data1 = ["One - one", "One - two", "One - three"]
let data2 = ["Two - one", "Two - two", "Two - three"]
let data3 = ["Back to One"]
var data: Array<String> = Array<String>()

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.dataSource = self
    tableView.delegate = self
    data = data1
}

func numberOfSections(in tableView: UITableView) -> Int {
  return 1
}


func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  return data.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  let cell = tableView.dequeueReusableCell(withIdentifier: "cellId")!
  let text = data[indexPath.row]
  cell.textLabel?.text = text
  return cell
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  print("Cell selected from data\(level)" )
  level += 1
  if level == 2 {
    data = data2
  } else  if level == 3 {
    data = data3
  } else  if level == 4 {
    data = data1
    level = 1
  }
  tableView.reloadData()
  print("Data loaded")
}
}

注意:我知道这段代码是垃圾,但它证明了问题,请不要批评它的无用。

0 个答案:

没有答案