UICollectionView 垂直间距约束显示白条 = 20 像素
Posted
技术标签:
【中文标题】UICollectionView 垂直间距约束显示白条 = 20 像素【英文标题】:UICollectionView Vertical Spacing Constraint shows white bar = 20 pixels 【发布时间】:2016-06-13 00:41:01 【问题描述】:我正在尝试显示所有 100 个 4x25 UICell 按钮,但是当我在底部滚动到停止时,最后一行只显示了 4 个单元格的一半(想象一个正方形的下半部分没有显示)。我添加了约束,包括 20 像素的垂直间距约束。现在,最后一行 4 个单元格都是可见的,但我的屏幕有 20 像素约束可见为一个白条(我的屏幕的整个宽度和 20 个高度)。我实际上希望滚动从底部停止 20 像素,因为如果我不这样做看起来很奇怪。
我尝试将视图(这是我的 UICollectionView 的超级视图)设置为清除颜色但仍然没有,该栏实际上变成黑色。
这里有一些代码来展示我在布局方面的内容:
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
flowLayout.sectionInset = UIEdgeInsetsMake(150, 20, 0, 20);
[flowLayout setItemSize:CGSizeMake(55, 55)];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
[self.collectionView setCollectionViewLayout:flowLayout];
self.collectionView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"MainScreen.png"]];
有什么想法吗?建议?我已经对建议的约束进行了重置。
【问题讨论】:
【参考方案1】:您是否重置了 flowLayout.sectionInset ?我认为这个问题发生在这里:
flowLayout.sectionInset= UIEdgeInsetsMake(150, 20, 0, 20);
你能试试这个代码吗:
flowLayout.sectionInset= UIEdgeInsetsMake(150, 20, 0, 0);
在最后一行显示图像的一半,我认为您可以查看并重置 yourCollectionView.frame(请参阅它的 autoresizeLayout)。你可以试试这个代码:
yourCollectionView.frame = yourContentView.frame;
yourCollectionView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin;
【讨论】:
以上是关于UICollectionView 垂直间距约束显示白条 = 20 像素的主要内容,如果未能解决你的问题,请参考以下文章
iOS:使用约束动画 UICollectionView 垂直扩展?