12-26英雄列表

英雄列表小应用的流程

1、通过plist加载模型对象,代码如下:

#import <Foundation/Foundation.h>

@interface CZHero : NSObject

@property (nonatomic,copy) NSString *name ;

@property (nonatomic,copy) NSString *intro ;

@property (nonatomic,copy) NSString *icon ;

-  (instancetype) initWithDic:(NSDictionary *)dic;

+ (instancetype) heroWithDic:(NSDictionary *)dic;

+ (NSArray *)heroList;

@end

#import "CZHero.h"

@implementation CZHero

-  (instancetype) initWithDic:(NSDictionary *)dic

{

if (self == [super init]) {

[self setValuesForKeysWithDictionary:dic];

}

return self;

}

+ (instancetype) heroWithDic:(NSDictionary *)dic

{

return  [[self alloc] initWithDic:dic];

}

+ (NSArray *)heroList

{

NSString *path = [[NSBundle mainBundle ] pathForResource:@"heros" ofType:@"plist"];

NSArray *dicArray = [NSArray arrayWithContentsOfFile:path];

NSMutableArray *tmpArray = [NSMutableArray array];

for (NSDictionary *dic in dicArray) {

CZHero *hero = [CZHero heroWithDic:dic];

[tmpArray addObject:hero];

}

return tmpArray;

}

@end

2、在controller中添加属性,并懒加载数据

- (NSArray *)heros

{

if (_heros == nil) {

_heros = [CZHero heroList];

}

return _heros;

}

3、拖拽一个tableView(使用tableView,必须设置数据源获取数据)代码如下:

- (void)viewDidLoad {

[super viewDidLoad];

////测试数据

//    NSLog(@"%@",self.heros);

CZHero *hero = self.heros[0];

NSLog(@"%@",hero.intro);

self.tableView.dataSource = self;

4、让controller遵守 数据源的协议UITableViewDataSource代码如下:

#import "ViewController.h"

#import "CZHero.h"

@interface ViewController ()<UITableViewDataSource>

@property (weak, nonatomic) IBOutlet UITableView *tableView;

@property (strong,nonatomic) NSArray *heros;

@end

5、连线的方式设置数据源

6、添加数据源的方法

#pragma mark - 实现协议方法

//- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

//{

//    return self.heros.count;

//}

////- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

////{

////    self.heros[section]

//}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

return self.heros.count;

}

- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

//    创建一个cell并且设置cell的风格

UITableViewCell *cell  = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:nil];

CZHero *hero = self.heros[indexPath.row];

cell.textLabel.text = hero.name;

cell.imageView.image = [UIImage imageNamed: hero.icon];

cell.detailTextLabel.text = hero.intro;

//    设置附属物风格

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

return cell;

}

效果如下:

时间: 2024-12-18 16:23:18

12-26英雄列表的相关文章

我们构建一个主从结构的页面,用于展现英雄列表

延续上一步教程 让应用代码保持转译和运行 我们要启动 TypeScript 编译器,它会监视文件变更,并启动开发服务器.我们只要敲: npm start 这个命令会在我们构建<英雄指南>的时候让应用得以持续运行. 显示我们的英雄 创建英雄 我们先创建一个由十位英雄组成的数组. /app/app.component.ts const HEROES: Hero[] = [ { id: 11, name: 'Mr. Nice' }, { id: 12, name: 'Narco' }, { id:

Angular 显示英雄列表

在本页面,你将扩展<英雄指南>应用,让它显示一个英雄列表, 并允许用户选择一个英雄,查看该英雄的详细信息. 创建模拟(mock)英雄数据 你需要一些英雄数据以供显示. 最终,你会从远端的数据服务器获取它.但是目前,你需要创建一些模拟英雄(some mock heroes),并假设这些数据是从远程服务器上获取的. 在 src/app/ 文件夹中创建一个名叫 mock-heroes.ts 的文件. 定义一个包含十个英雄的常量数组 HEROES,并导出它. 该文件是这样的. src/app/mock

AI行业精选日报_人工智能(12&#183;26)

浙江「AI 法官」助民间借贷纠纷实现全流程智审 「现在进行法庭发问.原告,你与被告是何关系?」12 月 24 日,在杭州市下城区人民法院,法官王颖没有出声,法庭已响起了对原被告的提问.原来 AI 法官助理「小智」已将事实性问题列表实时推送到了显示屏上,法官只须点击具体问题,即可由「小智」完成发问.开庭后仅 30 分钟,原被告双方已收到判决书.点击结案后,「小智」提示法官:「案件已自动进入归档程序,庭审视频与庭审笔录可同步对应点击回看.」这场由「小智」和法官共同参与的民间借贷纠纷智能审理高效完成.

【iOS开发之旅】UITableView示例-LOL英雄列表

UITableView示例-LOL英雄列表运行效果        CZHero.h // // CZHero.h // 04-UITableView示例-加载plist文件 // // Created by ChenQianPing on 16/1/21. // Copyright © 2016年 chenqp. All rights reserved. // #import <Foundation/Foundation.h> @interface CZHero : NSObject // 头

12-27cell 的可重用性(英雄列表应用性能的优化)

在英雄列表中动态生成cell的代码在中, - (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { //    创建一个cell并且设置cell的风格 UITableViewCell *cell  = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseId

12.26~12.30工作日志

2016.12.26/27 1.writing-mode: vertical-rl;在电脑显示有效果,在手机端无效 解决办法:改为 -webkit-writing-mode: vertical-rl; 2.div设置inline-block之后,如果没有设置固定宽高,div内的内容将正常显示,div缩为一个点????????? 3.设置float的元素最好设置好宽度,便于控制 4.document.getElementsByClassName(classname)获取的是数组数组!!!!就算获取

VMware Workstation 11 安装MAC OS X 10.10 Yosemite(14B25)图解 2015-01-13 12:26:01|

VMware Workstation 11 安装MAC OS X 10.10 Yosemite(14B25)图解 2015-01-13 12:26:01|  分类: 网络互联 |  标签:10.10  yosemite  vmware  |举报|字号 订阅 http://lbq20042002.blog.163.com/blog/static/8235302015013111858664/ 下载LOFTER我的照片书  | VMware Workstation 11 安装MAC OS X 10.

Android基础入门教程——2.4.12 ExpandableListView(可折叠列表)的基本使用

Android基础入门教程--2.4.12 ExpandableListView(可折叠列表)的基本使用 标签(空格分隔): Android基础入门教程 本节引言: 本节要讲解的Adapter类控件是ExpandableListView,就是可折叠的列表,它是ListView的子类, 在ListView的基础上它把应用中的列表项分为几组,每组里又可包含多个列表项.至于样子, 类似于QQ联系人列表,他的用法与ListView非常相似,只是ExpandableListVivew显示的列表项 需由Ex

12.26&amp;12.27 -正则表达式

12.26&12.27 正则表达式 第1章 使grep/egrep 过滤出的东西加上颜色 cat >>/etc/profile<<EOF alias grep='grep --color=auto' alias egrep='egrep --color=auto' EOF source /etc/profile alias grep egrep 第2章 正则表达式分类 2.1 基础正则表达式:basic    regular expression  BRE  ^  $  .