美文网首页
macOS开发之NSCollectionView报错

macOS开发之NSCollectionView报错

作者: chasitu | 来源:发表于2021-06-09 10:52 被阅读0次

首先我们先看看具体错误内容,下面的四个错误是同时报的错

  • 2021-06-09 10:37:26.398808+0800 macOS[1980:65564] The behavior of the UICollectionViewFlowLayout is not defined because:

  • 2021-06-09 10:37:26.398846+0800 macOS[1980:65564] the item width must be less than the width of the UICollectionView minus the section insets left and right values, minus the content insets left and right values.

  • 2021-06-09 10:37:26.413082+0800 macOS[1980:65564] The relevant UICollectionViewFlowLayout instance is <NSCollectionViewFlowLayout: 0x7ff9796248b0>, and it is attached to <NSCollectionView: 0x7ff979624500>.

  • 2021-06-09 10:37:26.413149+0800 macOS[1980:65564] Make a symbolic breakpoint at UICollectionViewFlowLayoutBreakForInvalidSizes to catch this in the debugger.

分析

  1. 首先明明是macOS项目里面的NSCollectionView控件,错误信息却是iOS里面的,这个是官方的原因,我们不多追究,能确定的是我的项目里面有错误的,也可以经过调整之后不再报错了
  2. 主要原因是NSCollectionViewitemheaderfooter的大小第一次赋值之后,后面又修改了如下代码
- (NSSize)collectionView:(NSCollectionView *)collectionView layout:(NSCollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
    return NSMakeSize(collectionView.frame.size.width, 31);
}
  1. NSCollectionView的父类NSScrollView的滚动条是根据数据量自动显示和隐藏的,导致NSCollectionView的宽度变宽和变窄15像素点

暂时解决方案:写死宽度或者高度,中途不再调整

相关文章

网友评论

      本文标题:macOS开发之NSCollectionView报错

      本文链接:https://www.haomeiwen.com/subject/tqxeeltx.html