美文网首页
ASCollectionNode在Plus手机上的坑

ASCollectionNode在Plus手机上的坑

作者: Michale_Zuo | 来源:发表于2018-12-14 14:56 被阅读0次

 最近项目中开始用Texture进行复杂页面的开发,在开发的过程中遇到了一个很奇葩的问题。现有一个需求需要进行ASCollectionNode进行布局。界面大致如下图所示

Simulator Screen Shot - iPhone 7 Plus.png

 这个界面是很常规的一个需求界面,代码量也不多,简单几行代码可以实现需求。

- (instancetype)init {
    UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init];
    flowLayout.minimumLineSpacing = 5;
    flowLayout.minimumInteritemSpacing = 5;
    flowLayout.itemSize = CGSizeMake((SCREEN_WIDTH - 20 -5) * 0.5, 300);
    self.collectioNode = [[ASCollectionNode alloc]initWithFrame:CGRectMake(10, 0, SCREEN_WIDTH - 20, SCREEN_HEIGHT) collectionViewLayout:flowLayout];
    self = [super initWithNode:self.collectioNode];
    if (self) {
        self.collectioNode.delegate = self;
        self.collectioNode.dataSource = self;

    }

    return self;
}
- (void)viewWillLayoutSubviews {
    [super viewWillLayoutSubviews];
    self.collectioNode.frame = CGRectMake(10, 0, [UIScreen mainScreen].bounds.size.width - 20, [UIScreen mainScreen].bounds.size.height);
    
}

 在除plus系列的模拟器上都正常显示,但是在p系列的机型上就出现了间距不对的问题


Simulator Screen Shot - iPhone 7 Plus.png

这让人很疑惑,后来我把

多减去了0.2的宽度,这样显示就正常了,但是这样不是很好的解决方案,至于是为什么有这样精度不对的情况,我想应该是ASDK里面自己的问题
flowLayout.itemSize = CGSizeMake((SCREEN_WIDTH - 20 -5) * 0.5-0.2, 300);

 我最终的解决方案是把flowLayout.minimumInteritemSpacing = 4;的值调小,让layout自己去适应,调整间距的大小,这个问题百思不得其解呀!

相关文章

网友评论

      本文标题:ASCollectionNode在Plus手机上的坑

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