最近项目中开始用Texture进行复杂页面的开发,在开发的过程中遇到了一个很奇葩的问题。现有一个需求需要进行ASCollectionNode进行布局。界面大致如下图所示
这个界面是很常规的一个需求界面,代码量也不多,简单几行代码可以实现需求。
- (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自己去适应,调整间距的大小,这个问题百思不得其解呀!
网友评论