美文网首页
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