本节重点:

了解UItableView 的基本属性

了解KVC... 其实 我也不是很了解

效果图:

代码示例:

控制器代码:

//
//  SJViewController.m
//  03.LOL Demo
//
//  Created by SJ.abnormal on 15-2-7.
//  Copyright (c) 2015年 SJ.abnormal. All rights reserved.
//#import "SJViewController.h"
#import "SJHero.h" //导入模型类@interface SJViewController ()<UITableViewDataSource> //实现协议
@property (strong, nonatomic) UITableView *tableView;
@property (nonatomic, strong) NSArray *heroData;
@end@implementation SJViewController- (void)viewDidLoad
{[super viewDidLoad];//设置数据源代理self.tableView.dataSource = self;
}
//必须实现的三个方法
#pragma mark - 设置UITableView显示几组
- (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {return 1;
}#pragma mark - 设置UITableView第几组显示几行
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {return self.heroData.count; //返回模型数组长度
}#pragma mark - 设置cell显示的内容
-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {static NSString *ID = @"hero";//取出对顶索引的模型SJHero *data = self.heroData[indexPath.row];//查找缓冲池中的cellUITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];if (!cell) {cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];}//设置文本信息cell.textLabel.text = data.name;//设置详细信息cell.detailTextLabel.text = data.intro;//设置图片cell.imageView.image = [UIImage imageNamed:data.icon];//返回cellreturn cell;
}#pragma mark - tableView 懒加载
- (UITableView *)tableView {if (!_tableView) {_tableView =  [[UITableView alloc]initWithFrame:[[UIScreen mainScreen] bounds] style:UITableViewStyleGrouped];[self.view addSubview:_tableView];}return _tableView;
}#pragma mark - tableView 懒加载
- (NSArray *)heroData {if (!_heroData) {//获取文件路径NSString *path = [[NSBundle mainBundle] pathForResource:@"heros.plist" ofType:nil];//将文件加载到数组中NSArray *dataAray = [NSArray arrayWithContentsOfFile:path];//创建模型数组 并设置长度NSMutableArray *dictArray = [NSMutableArray arrayWithCapacity:dataAray.count];//迭代取出数组中的数据,转换成模型for (NSDictionary *dict in dataAray) {[dictArray addObject:[SJHero heroWithDict:dict]];}//将转换好的模型数组赋值_heroData = [dictArray copy];}return _heroData;
}@end

模型声明:

//
//  SJHero.h
//  03.LOL Demo
//
//  Created by SJ.abnormal on 15-2-7.
//  Copyright (c) 2015年 SJ.abnormal. All rights reserved.
//#import <Foundation/Foundation.h>@interface SJHero : NSObject
//模型类
@property (nonatomic, copy) NSString *icon; //图标
@property (nonatomic, copy) NSString *name; //名称
@property (nonatomic, copy) NSString *intro; //详细介绍//工厂方法
- (instancetype) initWithDict: (NSDictionary *) dict;
+ (instancetype) heroWithDict: (NSDictionary *) dict;
@end

模型实现类:

//
//  SJHero.m
//  03.LOL Demo
//
//  Created by SJ.abnormal on 15-2-7.
//  Copyright (c) 2015年 SJ.abnormal. All rights reserved.
//#import "SJHero.h"@implementation SJHero- (instancetype) initWithDict: (NSDictionary *) dict {if (self = [super init]) {//KVC存取[self setValuesForKeysWithDictionary:dict];}return self;
}
+ (instancetype) heroWithDict: (NSDictionary *) dict {return [[self alloc] initWithDict: dict];
}
@end

IOS UITableView 实现LOL数据展示相关推荐

  1. IOS UITableView详解一数据展示 页面简单实现

    为什么80%的码农都做不了架构师?>>>    一 UITableView简介 UITableView用于表格数据展示,是使用频率最高的控件.UITableView继承自UIScro ...

  2. IOS开发基础之英雄展示完整版

    IOS开发基础之英雄展示完整版 // // ViewController.m // 15-英雄展示-单组数据 // // Created by 鲁军 on 2021/2/3. //#import &q ...

  3. 知识点回顾-简单的TableView单组数据展示/多组数据展示

    1 拖入TableView到UIView中,连线DataSource 2 3 1.实现数据源方法 4 - (NSInteger)tableView:(UITableView *)tableView n ...

  4. 具有多个单元格类型的iOS UITableView

    In this tutorial, we'll be developing an iOS Application using Swift that has a single iOS UITableVi ...

  5. 拼接大屏数据展示_大屏数据可视化设计注意事项

    大屏数据可视化是以大屏为主要展示载体的数据可视化设计.大屏的特点,使得在用户观感上留下独特的印象,同时,大屏所具备储存更大的信息量,对于大屏企业来说重点主要在于将信息全面的显示在屏幕上,关注于画质的清 ...

  6. redis一般缓存什么样数据_门户数据展示_Redis缓存数据

    学习主题:门户数据展示_Redis缓存数据 一.Redis_3主3从集群环境搭建 谈单你对读写分离和主从同步的理解 读写分离:Master负责写数据的操作,salve负责读数据的操作 主从同步:sal ...

  7. 易宝典——玩转O365中的EXO服务 之四十 创建就地电子数据展示搜索

    就地电子数据展示是靠就地电子数据展示搜索,将符合条件(例如关键字.开始日期和结束日期.发件人地址和收件人地址以及邮件类型等.)的邮件搜索出来用于展示.因此,在使用就地电子数据展示之前,必须为其创建就地 ...

  8. 就地电子数据展示与保留

    就地电子数据展示与保留功能可以搜索用户的邮箱,并能够将搜索的结果下载为PST文件. 首先赋予管理员相应的权限,依次执行以下操作:权限-管理员角色-Discovery Manage -角色处,添加Mai ...

  9. Exchange Server 2013就地电子数据展示

    9.2 就地电子数据展示 如果您的组织遵循法定发现要求(与组织策略.合规性或诉讼相关),Microsoft Exchange Server 2013 和 ExchangeOnline 中的就地电子数据 ...

最新文章

  1. 18 常用模块 random shutil shevle logging sys.stdin/out/err
  2. 利用Visual Studio的搜索功能和正则表达式统计代码行数
  3. html a标签去掉下划线_让HTML元素动起来
  4. Tensorflow yolov3 Intel Realsense D435 多进程multiprocessing线程池pool识别时间测试
  5. 对于新手来说,Python 中有哪些难以理解的概念?我似乎明白了
  6. eclipse maven在哪里_Maven操作
  7. C#中的几个实用的代码
  8. 前端学习(531):什么是等高布局
  9. 剑指Offer - 面试题26. 树的子结构(双重递归)
  10. 【Linux】Linux多个关机命令详解
  11. Windows Server AppFabric Caching支持大数据量的配置
  12. Tornado入门之旅
  13. [记录] Ubuntu 配置Apache虚拟站点
  14. python 特殊方法实例
  15. Kotlin 新版来了,支持跨平台!
  16. 万用表测线路断点位置_万用表测电流口诀,正确使用方法
  17. c语言plc编程软件下载,罗克韦尔plc编程软件下载-2017罗克韦尔plc编程软件V21.00 官方最新版 - 极光下载站...
  18. WIFI参数Beacon Interval、DTIM、Fragment Length、RTS Length
  19. 苹果新园区最新内部效果图流出
  20. 第五人格显示连接服务器失败怎么办,第五人格提示重新连接服务器怎么办 连接服务器失败解决方法...

热门文章

  1. 《GNU通用公共许可证》第3版 中英对照翻译版 By: 冰枫火灵X
  2. 曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。 还有人称今后的某个世纪末的12月31日,如果是星期一则会.... 有趣的是,任何一个世纪末的年份的12月31日
  3. AntiSamy:防 XSS 攻击的一种解决方案使用教程
  4. Java| eclipse控制台不见了怎么办
  5. macos root 切换_Mac OS X 终端切换root用户
  6. 【IoT 压测】国内云厂商 IoT 物联网平台性能评估
  7. redisson分布式锁,实战
  8. batocera_Batocera新手上路手冊(二):執行遊戲與基本操作說明
  9. Selenium模拟浏览器
  10. SVN版本库内容冲突或树冲突的解决办法