2015 IOS tabelView分组、Xib、Cell——在蓝懿教育 学习笔记

TabelView分组。表头,表尾

删除vc 搭建tvc

分组界面中return 2 分2组;

在控制行加判断 如果section== 1  return10 (此时012 0123456789)

在sb中选中tv在style右样式改成Grouped 此时有了间隔

控制分组题头和尾。有个字符串

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{

return @"我是头";

}

-(NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{

return @"我是尾";

}

如果把tv显示的横线去掉,选中tv 有个Separator  改成None 或者改变线的颜色

添加headview(顶部)显示效果:可以随着页面上下滚动(微博)

在sb中拖入view到cell顶部,此时可以随意调整高度,可以拖入label、uiimageview、textview等等。。

此时一滚动就随着滚动,上面不动的话是vc

如果是代码中控制headview的内容,那么要拖拽控件到tvc然后控制其显示内容

footview是view拖入中间,或下面,

——————————

静态Cell(里面的内容一成不变,比如设置)        使用的话要把代码注释掉

在sb中建立tvc 点击tv右侧选项中选择 content

数字是第几组

可以拖拽各种控件在上面

但是此时要把行数和显示内容的代码关掉

但可以加点击事件,

方法:tabelview didseletctrow。。。 {  }

——————————

创建 Xib

删除sb,设置主界面 的选项 删除选项。

在AppDelegate。m中第一个方法中,

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

self.window.rootViewController = vc;         (               这个是新创建的页面)

[self.window makeKeyAndVisible];

return YES;

}

删除vc并创建一个继承uitvc的tvc并且给Xib打钩创建。

回到appdelegate。m刚才的方法中添加

TableViewController *vc = [[ViewController alloc]initWithNibName:@"TableViewController" bundle:nil];

————也可以创建一个vc,并且打钩xib

在app,m中关联vc,

在vc。xlb中创建控件,并关联,,

关联后进入vc。m中设置跳转页面:

1、声明tvc,进入点击事件中设置tvc*vc = 。。

设置跳转。

Xib用在页面中的使用

————————————————

Xib也可以作为控件

比如组合形式做出一个等待界面:loading、、、

新建vc并关联打钩xib,进入xib界面,调整页面大小, 右侧把电池去掉 ,拖入菊花,tabel。写成loading

此时的Xib的控件不能往m里拖拽,只能h中。

然后返回到vc。m中关联loadingview

在viewdidload中设置创建xib的自定义界面

LoadingView *lv = [[[NSBundle mainBundle]loadNibNamed:@"LoadingView" owner:self options:nil] lastObject];

lv.center = self.view.center;设置到中间

[self.view addSubview:lv];

但此时xib是一个数组,其中的lastobject是最后一个,

-————————

自定义Cel

l有三种方式:

1、纯代码(显示布局不固定)

2、通过sb(最简单:固定,不复用)

3、通过xib(显示固定但涉及复用)

如果是纯代码的就把cell删除

创建一个纯代码创建的cell

删除vc建立tvc

关联tvc

把cell删除

自己创建一个继承uitabelviewCell

在tvc声明导入cell

要实现左边图像右边文本,

此时sb中没有cell了,所以显示内容里就要改变成

MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

并判断如果不存在cell

那么

cell = [[MyTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];

创建控件后,就会进到mytvc。m当中

这时候要重写初始化方法。————输入init——并提示第四个之后选择并  重新替换成initwithstyle

因为后来tvc.m需要用到控件的属性所以设成了属性

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier

{

self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];

if (self) {

//写自己想添加的各种控件

self.iv = [[UIImageView alloc]initWithFrame:CGRectMake(280, 0, 40, 40)];

self.iv.backgroundColor = [UIColor blueColor];

[self.contentView addSubview:self.iv];

}

return self;

}

此时返回tvc。m中设置10行

这样就每一行都带有自己定义的内容

(刚才iv在mytvc。h中声明了自己的属性并且值得注意的是不能起名imageView,因为重名,所以都是self)

在tvc中 ,声明cell。iv。image = @”“;

————————————————————————

2 在sb中创建自定义cell:

在sb中选中cell 创建好mytvc的类,并关联cell,cell加标识

此时拖拽出想要的效果,

如果里面内容(label)要与代码关联改变(比如数字递增);

那就把label链接mytvc。h

此时要创建,

转到tvc。m中

如果是纯代码创建 ,就是一个参数,如果是sb创建就是两个参数

此时是sb创建。那么

再加一个cell.mylabel.text = ..%d.in..row..、

此时就能显示逐行递增的效果

——————————

Xib  自定义cell

在sb中拖拽tv进来,并连线两个选项,

在vc中添加协议两个, tvdatasource 和 delegate

进入第一个协议,必须实现的方法,复制到外面,一个行数 一个内容,

retun 10行

此时创建一个集成uivc 的vc,并且打钩xib

在xib拖拽控件,回到vc。的显示内容中

关联mytvc,并创建cell。

MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

判断如果cell没值,那么

if (!cell) {

cell = [[[NSBundle mainBundle]loadNibNamed:@"MyTableViewCell" owner:self options:nil]lastObject];

}

并且 return cell;

但是 要在xib的cell加标识cell

并且在xib中拖拽的界面大小在显示中并没有影响,

所以要在后面vc中输入控制行高的方法

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

return 130;

}

时间: 2024-12-16 23:09:45

2015 IOS tabelView分组、Xib、Cell——在蓝懿教育 学习笔记的相关文章

2015 IOS 制作通讯录——在蓝懿教育 学习笔记

来自蓝懿教育 学生笔记 1.删除界面中的vc,并且建立一个tablevc,在sb中创建navigation,并且关联TableView中的属性,并让箭头指向第一页面的navigation,并关联cell 2.拖拽界面view controller 建立一个personviewcontroller使之与sb中的关联, 3.在tablevc中建立左上角的加号 4.关联Personvc属性,并且在左上角加号中的事件方法中写入事件 5.删除vdidload中的多余行(留下添加右上角删除按钮代码): 6.

2015 IOS TableView ——在蓝懿教育 学习笔记

TableView   蓝懿教育 1首先创建 UITableView *tableView = [[UITableView alloc]initWithFrame:self.view.bounds]; tableView.dataSource = self; //dataSource 是数据源 [self.view addSubview:tableView]; 2创建协议 @interface ViewController ()<</span>UITableViewDataSource&

2015 IOS 文件管理器 ——在蓝懿教育 学习笔记

得到文件管理器   蓝懿教育 NSFileManager *fm = [NSFileManager defaultManager]; //    复制 //    [fm copyItemAtPath:@"/Users/ivan/Desktop/a.png" toPath:@"/Users/ivan/Desktop/copy/a.png" error:nil]; //    移动  移动的时候目的地不能有重名的 //    [fm moveItemAtPath:@&

2015 IOS 自定义cell成绩单——在蓝懿教育 学习笔记

1.sb中添加一个tv,箭头,Cell,创建tvc并关联 2.建立Student对象,在.h中建立字符串name,语数英: 3.在tvc创建数组,学生的对象, 初始化, 获取字符串和内容(txt 的文件) 分割字符串 遍历拿到每一行,拿到每一行再分割 每一行都要创建一个student, 每个学生的姓名 语数英分数 把创建好的学生对象添加到数组 4.行数,内容, 取出每行学生对象, 然后cell,textlabel.text  = .. 此时名称显示出来 5.创建tableviewCell 关联s

2015 IOS 字典——在蓝懿教育 学习笔记

字典 NSMutableDictionary *dic = [NSM.. dictiongaryWithobject :@”  “ forKey:@“  “]: (实现了NSCopying的任意对象) dic setobject :@“” forKey :@“” .. @[  ]————数组的简写 注意 :字典是无序的. 创建页面跳转(用字典): 把vc 的字典搬到tvc 1.创建数组(不可变) 字典声明成属性 2.dic此时变为self.dic 3.行数self.dic.count 4.在行数

2015 IOS 地图——在蓝懿教育 学习笔记

1,在VC中添加地图界面MKMapView(全屏) 2.选工程界面相对应的界面中倒数第二行,Build Phases选项中 选择第三个 的+号,弹出来搜索框输入mapk,选择搜索结果确认添加,此时地图能显示出来. (3.在SB中的地图右侧选项有三个模式,(二维线路,卫星无线路,卫星有线路)) 4.关联代码在vc中关联myMV.但此时并不被系统识别,此时要添加import<MapKit/MapKit.h>协议,此时就被识别了 5.此时要从网络获取到经纬度,比如天安门经纬度, 此时要用到方法——创

2015 IOS 制作相册——在蓝懿教育 学习笔记

字典 NSMutableDictionary *dic = [NSM.. dictiongaryWithobject :@”  “ forKey:@“  “]: (实现了NSCopying的任意对象) dic setobject :@“” forKey :@“” .. @[  ]————数组的简写 注意 :字典是无序的. 创建页面跳转(用字典): 把vc 的字典搬到tvc 1.创建数组(不可变) 字典声明成属性 2.dic此时变为self.dic 3.行数self.dic.count 4.在行数

2015 IOS &#160;植物大战僵尸初版——在蓝懿教育 学习笔记

创建僵尸类zomb,继承UIIV 把VC的即使时间timer放到僵尸类的初始化方法中 - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { [NSTimer scheduledTimerWithTimeInterval:.1 target:self selector:@selector(changeImage) userInfo:nil repeats:YES];

2015 IOS IOS_UIWebView字体大小、字体颜色、背景色——在蓝懿教育 学习笔记

前段时间需要修改webView背景色,上stackoverflow搜了很久没有找到结果,百度搜索,各种转载,各种坑爹,搜出来的都只有字体大小和字体颜色,页面背景没有看到,本人发布方法,希望可以帮助到更多人 在webView的delegate回调方法-webViewDidFinishLoad:(UIWebView*)webView;中写上一下语句即可 //字体大小 [webView stringByEvaluatingJavaScriptFromString:@"document.getEleme