01-UI基础-04-02-UITableView补充
2016-01-13 17:24
405 查看
##利用缓存池优化列表显示
为所有能现实在用户面前的cell分配内存地址
当一个cell移除用户视野,对应的下一个出现的cell会利用该cell的内存地址
下面是代码部分
实际内存地址使用情况如下。上下移动列表,其内存地址总是保持着11个不同的值,且互相切换。
为所有能现实在用户面前的cell分配内存地址
当一个cell移除用户视野,对应的下一个出现的cell会利用该cell的内存地址
下面是代码部分
/** * 每一行显示怎么样的内容(call) * */ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ // 1.通过一个标示去缓存池中寻找可循环利用的cell // dequeue:出列(查找) UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"A"]; // 2.如果没有可循环利用的cell,就创建 if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"A"]; } // 3.给cell设置新的数据 YSHero *hero = self.heros[indexPath.row]; cell.textLabel.text = hero.name; cell.detailTextLabel.text = hero.intro; cell.imageView.image = [UIImage imageNamed:hero.icon]; // 设置cell指示器类型 // cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; // 设置cell指示器view cell.accessoryView = [[UISwitch alloc] init]; // 设置背景色(不用设置View宽高) UIView *bgView = [[UIView alloc] init]; bgView.backgroundColor = [UIColor whiteColor]; cell.backgroundView = bgView; // 设置选中的单选框背景 UIView *selectView = [[UIView alloc] init]; selectView.backgroundColor = [UIColor brownColor]; cell.selectedBackgroundView = selectView; NSLog(@"%d-%@-%p",indexPath.row,hero.name,cell); return cell; }
实际内存地址使用情况如下。上下移动列表,其内存地址总是保持着11个不同的值,且互相切换。
相关文章推荐
- GUI - Web前端开发框架
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 评价ui设计作品好坏的八个标准(界面/交互设计研究)
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 为Yahoo! UI Extensions Grid增加内置的可编辑器
- Cocos2d-x UI开发之文本类使用实例
- 谈谈对jquery ui tabs 的理解
- 在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
- UI Events 用户界面事件
- jquery UI Datepicker时间控件的使用方法(基础版)
- 基于jQuery UI CSS Framework开发Widget的经验
- jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
- jQuery UI设置固定日期选择特效代码分享
- Jquery ajax 同步阻塞引起的UI线程阻塞问题
- jQuery UI的Dialog无法提交问题的解决方法