2015 / 11 / 14 日结 /tableviewcell高度的坑 / label 自适应的坑 / heardview 头部的坑

今天遇到的问题:

1,heardview 头部高度问题,当设置tableview的tableviewheardview属性,再调用系统方法 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section; 设置高度时,heardview的高度会重叠添加的问题;

原因:错误理解了tableviewheardview属性,这个属性是给整个的tableview设置一个区头,而方法 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section; 是给所有分区设置区头
以后要注意这一点。两个区头是要分开的。


2.uilabel设置了居中显示但是并没有居中,

原因:设置label的属性使用自适应,根据字符串设置的label大小,导致label的宽度没有达到想要的宽度,所以造成并没有居中显示,以后遇到这种问题可以给label设置一下背景色看一下。


3.在一个cell内设置三个label,有一个label行数为2,其他为1行,label的间距和字体时固定的,使用自适应高度,字体高度超出cell的高度。

原因:自适应得到的是字符串总的高度,也就是说label的高度已经超出了两行。这种情况可以 自定义一个字符串 “ 空格 /n 空格” 制造两行字符串,然后使用这两个字符串自适应高,得到两行的高度,计算一行可以使用一个空字符串“ ” , 另外一个方法 得到 字符串行间距  6 ,减去label的行间距就可以。

两行字符串高度 “ 空格 /n 空格”

一行字符串高度 ” “

注意,这样算的label实际高度 比 一行高度+行间距+一行高度  要高;


4.封装view进行数据传递时,自定义初始化方法 ,在自定义初始化方法中添加 参数,用来传递数据;

- (instancetype)initWithFrame:(CGRect)frame goodsArray:(NSArray*)goodsArray;


5.在代理方法中已经设置cell的高度,但是在初始化的时候,cell的高度还是44,只有滚动一次才会恢复设置高度。这是一个问题?

原因:cell在创建的时候是只有一个默认高度的。需要初始化cell之后给他一个高度。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;虽然这个方法调用早,但是cell创建的时候是没有高度的。

所以需要在创建cell的时候设置cell的高度

  XBToDaySngnCell *cell = [tableView dequeueReusableCellWithIdentifier:name];
    if (!cell) {
        cell  = [[XBToDaySngnCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:name];
        cell.height =[XBToDaySngnCell cellHeight:self.timearray[indexPath.row]];
    }
    cell.moder = self.timearray[indexPath.row];
    return cell;


6.牢记 总数确定 m

           一行摆放数量确定  n

  一共多少行  (m + n - 1 ) / n;






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值