dequeueReusableCellWithIdentifier在swift中加载时间

时间:2015-04-24 09:34:50

标签: ios uitableview swift

我的UITableView有问题。当UIViewController结束时加载UITableViewCell大约需要4秒,以便第一次加载。当我再次呼叫我的UIViewController时,它正确加载。我错过了什么 ?

任何帮助将不胜感激:)

加载UIViewController

override func viewDidLoad() {

    super.viewDidLoad()

    self.tableView.backgroundColor  = UIColor.blackColor()
    self.webview.backgroundColor    = PPP.COLOR.BackgroundDarkBrown
    self.webview.contentMode        = UIViewContentMode.ScaleAspectFit
    self.webview.suppressesIncrementalRendering = true        
    self.webview.alpha = 0
    self.tableView.alpha = 1

    self.tableView.registerNib(UINib(nibName: "SummaryProduct", bundle: NSBundle.mainBundle()), forCellReuseIdentifier: "cell1")
    self.tableView.registerNib(UINib(nibName: "SummaryOrder", bundle: NSBundle.mainBundle()), forCellReuseIdentifier: "cell2")
}

我的TableView宣言

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // FOR ORDER
    if section == 1 { return 1 }
    // FOR PRODUCT LIST
    let count = self.cart.getTotalProducts()
    if count > 0 { return count }
    return count
}

func tableViewForCellProduct(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("cell1", forIndexPath: indexPath) as SummaryProductTableViewCell
    cell.configureCellWithIndexPath(self, indexPath: indexPath, cart: self.cart)
    return cell
}

func tableViewForCellOrder(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath ) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("cell2", forIndexPath: indexPath) as SummaryOrderTableViewCell
    cell.configureCellWithIndexPath(self, indexPath: indexPath, cart: self.cart)
    return cell
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    switch indexPath.section {
    case 0:
        return self.tableViewForCellProduct(tableView, cellForRowAtIndexPath: indexPath)
    default:
        return self.tableViewForCellOrder(tableView, cellForRowAtIndexPath: indexPath)
    }
}

1 个答案:

答案 0 :(得分:1)

延迟可能是第一次加载细胞。第二次他们可能在某个地方缓存。

您可以通过在应用加载的应用委托中创建两个单元格来延迟加载时间,这很可能预先填充任何缓存,这意味着您的第一次使用将与第二次使用一样快。