在iOS中,为了减少内存的使用率,提高系统运行的流畅度和用户的体验度,苹果系统做了很多优化。比如说今天要和大家讲一讲,在tableview中的复用问题。如果在tableview上面要显示风格一样的20条数据,但是屏幕只能显示10条数据,那么剩下不显示的十条数据,就不会给它分配内存,当要显示第十一条数据的时候,它会复用第一条数据,其实就是一个模版,我们只要在模版上面将不一样的地方,替换上第十一数据的内容就可以了。每一个cell都会有一个id,我们就是通过这个id来判断,我们要复用哪一个的。
//每一行的内容
public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath)
{
UITableViewCell cell = tableView.DequeueReusableCell (cellReuseId);
if (cell == null) {
cell = new UITableViewCell (UITableViewCellStyle.Default, cellReuseId);
}
cell.TextLabel.Text = "123";
return cell;
}
首先,我们会从复用池里面找出Id一样的一个cell,这里的id是一个string类型的字符窜,如果找到cell,我们直接拿过来用;如果没有找到,我们再重新new一个出来。