UITableView的使用

1、UITableView需要一个数据源【dataSource】来显示数据(只要遵循UITableViewDataSource协议都可以作为数据源);如果要显示分组,需要更改style属性默认是plain(headView、footerView会有悬浮的效果),改为Group(可以在属性面板上更改);
     设置控制源为控制器;可以代码实现,也可以通过storyboard连线的方式;
     tableView的属性:row height(设置整体的行高)默认的行高是44;如果需要实现每一行的高度需要实现代理方法;
     separatorStyle:设置分割线的样式(是一个枚举型);
      separatorColor:设置分割线的颜色;
     editing:是否可以编辑(可以实现删除功能,设置YES会一直显示),实现编辑的工能,都是通过代理实现的;

     以下的方式是代理实现的:
      tableHeaderView:可以设置头部试图(但是在设置View的位置的时候,只有高度有作用),比如说广告等;
      tableFooterView:可以设置尾部的视图(但是只有X和Height值有效果);
     sectionIndexTitleForTable:设置每一组的索引值;可以实现自动跳转;
     didSelectRowAtIndexPath:监听点击cell事件;

     #pragma是编译形的注释;一般都是用在代理方法、数据源方法前面,方便查找;

     实现协议中的方法:控件中有多少组数据、每一组占有多少行、每一行显示的数据(返回的类型:UITableViewCell继承与UIView)其中有一个NSIndex参数里面有一个section(组号),row(行号);

     创建cell初始化的时候:使用initWithStyle:使用默认,设置重用标识符;在设置数据的时候:

     cell里面有一个自带的textLable标签;可以设置标题。

     imageView可以设置图片。

     accessorType:可以设置指示器;

     accessorView:可以自己设置指示视图,但是位置是固定的,只能设置大小;

     backgroundColor,backgroundView都可以设置cell的背景颜色,但是后者的优先级高于前者;而且后者不用自己设置frame,会自动填充整个cell;

     selectBackgroundView:设置cell选中后的颜色,默认是灰色;

     detailTextlable设置小文字,细节说明(但是在默认的style模式下面,是不显示的,要改为_SubTitle风格);

2、在现实tableView的时候,如果不是Group属性,窗口显示的时候会和系统状态栏重合;

需要隐藏状态栏;可以使用下面的方法;
-(BOOL)prefersStatusBatHidden{
     return YES;
}

3、TableView的优化(cell的重用):
     在tableView控件创建的时候,内部自带了一个重用池。在cell移除屏幕不能显示的地方的时候,会将cell放到重用池里面储存;需要显示一个新的cell的时候首先应该使用重用池里面的cell;如果重用池里面没有对应的cell(一个tableView里面显示的cell类型可能不一样,所以在取用的时候需要判断重用标示符),那么自己创建一个。这样节省了内存;
     实现:UITabelViewCell *name = [tableView dequeueReusableCellWithIdentfier:@“标识符”];

4、在弹框中显示文本框:Alert.AlertViewStyle这是一个枚举类型;
     获取弹框中的文本框:[Alert textFieldIndex:[]];这是IOS8在弹框中添加文本框方法,现在不推荐使用;

     当设计更改cell中的数据的时候;需要得NSindexParh数据的时候,可以使用Alert空间的Tag值设置为Row,这样便能知道是点击了那个一个cell(前提是只有一个分组); 

     更改cell数据,必须直接更改数据模型;然后刷新数据;可以调用方法[tableView reloadData](全局刷新);
方法reloadRowAtIndexPath:表示需要刷新行的集合 withRowAnimation:刷新时的动画】;

5、GCD多线程方法:dipatch_after方法:第一个参数是延迟的时间,block里面的代码段是需要延迟执行的代码;
 
6、 // 设置分割线颜色的
   
_tableView.separatorColor = [UIColor redColor];
   
   
// 侵蚀 , 分割线样式
   
_tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
   
   
// top, left, bottom, right , 上, 是没有效果的
   
// 设置分割线的范围。设置左边的时候会影响都文字的显示
    _tableView.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0);
  
7、设置滚动到指定的一行,选择到这一行的位置,这里选的时底部、是否有动画;
 [_tableViewscrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottomanimated:YES];

8、在自定义cell时,添加子控件的时候,是在self.content;

9、获取文本框的Size:
CGSize contentMaxSize = CGSizeMake(contentLabelWidth, MAXFLOAT);
   
// NSFontAttributeName 字体的大小
   
NSDictionary *attributesDict = @{NSFontAttributeName:[UIFont systemFontOfSize:15]};
#warning 计算文本实际宽高的时候, 计算的字体大小要和label中设置的字体大小保持一致
    // 根据限定的条件, 来计算text 真实的宽高
    CGSize contentRealSize =  [weiboModel.text boundingRectWithSize:contentMaxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attributesDict context:nil].size;





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值