【问题标题】:Very slow opening of UIPickerViewUIPickerView 打开速度很慢
【发布时间】:2016-08-11 19:24:01
【问题描述】:

我有两个 VC。一个作为导航控制器,另一个作为模式视图。 我正在使用 segue 来显示模态视图。

dispatch_async(dispatch_get_main_queue(), { () -> Void in
  self.performSegueWithIdentifier("openFilterSegue", sender: nil)
});

然后打开类似的东西

class FilterVC: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource, AlertMessage {
  override func viewDidLoad() {
    pickerView.dataSource = self
    pickerView.delegate = self
  }

  func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView!) -> UIView {
    let pickerLabel = UILabel()
    pickerLabel.textColor = UIColor.blackColor()
    pickerLabel.text = arrShopCentrum[row].nazev
    pickerLabel.font = UIFont(name: "Roboto-Regular", size: 15) 
    pickerLabel.textAlignment = NSTextAlignment.Center
    return pickerLabel
  }

  func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return arrPlace.count
  }
}

当我第一次打开该 VC 时,加载大约需要 3 秒。然后我关闭它,它会打开得更快。

顺便说一句,我在那里使用REALM 对象数据库,但我认为这不是问题。 它在storyboards中和Delegate + datasource是相连的

【问题讨论】:

  • 你有没有用仪器来看看什么需要这么长时间?
  • 嗨,我想你忘了在 FilterVC 中超级调用 viewDidLoad 方法。
  • 我调用了 super.viewdidload。没有任何改善。
  • @EmilioPelaez:我认为 80% 是 Pickerview。没有自动布局冲突或其他问题。
  • Instruments 的结果到底是什么?

标签: ios swift uipickerview


【解决方案1】:

我已经有同样的问题很长一段时间了。连接到 Xcode 时似乎是错误。

可以在此处找到此错误的其他实例:

祝你好运!

【讨论】:

  • 我很可能不正确地假设这只是 Xcode 的一个错误。但是,如果只是由于 Xcode 效率低下而导致性能下降,那么除了让您知道您并不孤单遇到这个问题(这是我的回答试图做的)之外,我在建议方面也无能为力。
  • 但它不在 Xcode 中。但在运行 iOS 8.4 和 9.2.1 的真实设备中:-/
  • 在您安装应用程序、从计算机上拔下设备、重新启动并重新运行应用程序后,是否仍然需要很长时间才能显示 Picker?
  • 好吧。那是我的问题。 :-)
  • 如果真的是这样,那么我假设它是来自 Xcode 的错误是不正确的。在我看来,这听起来更像是泄密。
猜你喜欢
  • 2010-11-19
  • 1970-01-01
  • 2016-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-25
  • 2017-04-26
相关资源
最近更新 更多