码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-09-24 22:36:39      阅读:320      评论:0      收藏:0      [点我收藏+]

标签:

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;

}

 
 

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

标签:

原文地址:http://www.cnblogs.com/lovemyios/p/4836606.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!