UICollectionView the item height must be less than the height of the UICollectionView minus the sect

在写Demo的时候发现了打印台有项目里类似的警告,想着正好有时间,可以看看怎么去除这个警告。

警告如下:

the item height must be less than the height of the UICollectionView minus the section insets top and bottom values, minus the content insets top and bottom values.

看着意思大概是说item的大小超出了collectionView的大小 。

但是看着代码逻辑上应该没错啊,大小正好限制的好好的。然后debug了一下,看了一下图层关系,看到了点蛛丝马迹

 

 

我理想中的设置collectionView的Height是14.32这样的高度,然后设置的label的Height就是充盈这个cell。感觉理论上没啥问题,但是日志台上有这么一长串的警告输出。查找资料之后,受到启发,看了下层级关系:

collectionView的实际高度是14,而cell的实际高度是14.333

 

所以有这个报错就很正常了。但是我有点没有搞懂,为啥masonary传入带小数的数之后,是以什么规则计算得到最终的值的。因为我试了好几种数值带小数的,并不是我想的,传入小数,可能就向下取整了。传入不同的数值,从图层看到的Height还不太一样,基本上不是预期的。但是传入整数,得到的就是预期的整数。所以目前我的处理方式就是向上取整,来解决这个警告。就是保证collectionView的高度比cell的大,或者相等。

CGFloat height_tags = ceil([@"先婚后爱" sizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12]}].height);
[self.collecitonView mas_makeConstraints:^(MASConstraintMaker *make) {
     make.centerY.equalTo(@0);
     make.left.equalTo(@44);
     make.right.equalTo(@-44);
     make.height.equalTo(@(height_tags));
 }];

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值