当UITableView加载完成后,我可以调用一个函数吗?

问题描述:

我想根据它们包含的文本更改我的表的某些行的附件类型。我认为有一种方法可以在表格加载时执行,我可以遍历表格并检查每个单元格是否符合我的条件。我不知道如何在UITableView加载完成后调用函数。当UITableView加载完成后,我可以调用一个函数吗?

尝试使用这种委托方法,当调用此方法时,文本已经在单元格中,您可以测试它并添加或删除附件。从该文档:

讨论 表视图发送它使用细胞来绘制一排,从而允许委托其显示之前定制单元格对象之前这个消息给它的代理。此方法给出了代表一个机会来覆盖基于状态的性质由表视图先前设置,例如选择和背景颜色。委托返回后,表视图动画的行,只有当他们在或滑出只设置的α和框架属性,然后。

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { 

// check text and do something 
} 
+0

由于里面有很多!像魅力一样工作! – gohar94

您必须在返回单元格之前在cellForRowAtIndexPath中执行检查并更新同一功能中的附件视图。

由于现时的tableView没有这样的情况下没有完成加载

可能是,你可以接近它这个样子,

func tableView(_tableView: UITableView, 
       cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{ 

    ///Cell Creation Code 


    if indexPath.row == data.count{ 
     //call method asynchronously to indicate table finished loading 
    } 

    //return cell 
} 

但同样这取决于你多少行的数据...

UITableView只加载在屏幕上可见的行,这是一个很棒的功能,因为它不需要一次生成所有的行,这意味着更低的内存使用率和更好的性能。因为这个原因,没有UITableView完成加载的概念,因为它从来没有这样做。想象一下,如果你有20行,只有8行显示在屏幕上,用户可以向上或向下滚动,导致新行被显示,旧行被回收。正如其他人所说,做这个的地方是在cellForRowAtIndexPath设置单元格的时候。

可以asyncrhonously调用该方法。

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

    if indexPath.row == data.count-1{ 
    // Declare your cells here 
    } 

}