我有同样的probleme在我的应用程序。 我通过在每个旋转重现流布局固定这一点。
示例代码:
/**
* Update the layout based on screen size
*
* @param CGSize
* @return void
*/
- (void)updateLayoutBasedOnSize:(CGSize)size {
// Configure layout
CGSize offersSize;
// iPad Layout
if ([UIDevice isIPad]) {
if (size.width > size.height) {
// 4 cols
offersSize = CGSizeMake((size.width/4) - 15.0f,
(((size.width/4)/3) * 2) - 20.0f);
} else {
// 2 cols
offersSize = CGSizeMake((size.width/2) - 15.0f,
(((size.width/2)/3) * 2) - 20.0f);
}
// iPhone layout
} else {
if (size.width > size.height) {
// 2 cols
offersSize = CGSizeMake((size.width/2) - 15.0f,
(((size.width/2)/3) * 2) - 20.0f);
} else {
// 1 col
offersSize = CGSizeMake(size.width - 20.0f,
((size.width/3) * 2) - 20.0f);
}
}
offersSize.height += 30.0f;
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
[flowLayout setItemSize:offersSize];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
[_collectionView setCollectionViewLayout:flowLayout];
}
我调用每个接口轮状病毒此方法以collectionView大小作为参数。 PS:我使用一些自定义方法,如[UIDevice isIPad]
,但答案并不重要。
是否有任何单线解决方案?我不想让这个工作:)的自定义黑客。 – sabiland
没有抱歉...所有行不能用一行完成。更新布局以适合的最小值是flowLayout的一部分。 ContainerView仍然有点bug –
好吧,我会尝试。无论如何,在我看来,应该有更优雅的解决方案,因为只有从肖像 - >风景旋转时才会出现问题。当应用程序以纵向模式启动时,没有任何问题。真奇怪。 – sabiland