Nit*_*esh 61 ios uicollectionview uicollectionviewlayout
我正在使用UICollectionView流程布局.我也为此做了一个习惯UICollectionViewCell.但是在运行项目时,控制台继续抛出这个错误 -
UICollectionView未定义的行为是因为:项目高度必须小于UICollectionViewCell减去该部分高度的顶部和底部值.
我确保细胞的大小是正确的
有没有人能够解决这个问题.提前致谢.
关心Nitesh
小智 38
我发现,使用storyboards,你必须进入storyboard并点击整体View Controller(视图应以蓝色突出显示)并转到Attributes Inspector(屏幕右侧的第四个标签)并取消选中"Under Top Bars" ,"Under Bottom Bars"和"Under Opaque Bars".这为我解决了这个问题,它也为我的同事清除了它.
nin*_*eer 29
当使用集合视图呈现全屏视图控制器时,我遇到了一些问题.
基本上在运行时,它会询问项目的大小,并简单地返回集合视图的大小:
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
return self.collectionView.frame.size;
}
Run Code Online (Sandbox Code Playgroud)
Saj*_*jon 26
我知道这是一个非常晚的回复,但我也经历过这个.
在我的视图控制器中,让我们称它为MyViewController我有一个UICollectionView使用自定义UICollectionViewCells.我正在实现方法collectionView:layout:sizeForItemAtIndexPath我返回的项目大小取决于高度UICollectionView.
MyViewController是在故事板中使用autolayout来控制的高度UIViewController.
在纵向模式下,单元格看起来很好,但在横向模式下则没有.
我通过无效的解决我的问题,UICollectionViewLayout我的UICollectionView内部viewWillLayoutSubviews方法.
- (void)viewWillLayoutSubviews {
[self.myCollectionView.collectionViewLayout invalidateLayout];
}
Run Code Online (Sandbox Code Playgroud)
早些时候我曾尝试使布局无效willAnimateRotationToInterfaceOrientation:duration,但它没有用.原因可能是所有视图的大小尚未计算,所以我们必须等到自动布局完成它的魔力.我指的是这个SO线程.
Swift 4.0的更新:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
self.myCollectionView.collectionViewLayout.invalidateLayout()
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*oke 18
尝试使用全屏单元格创建集合视图时,我自己有几次这个问题.我的问题是由于在IB /故事板中布置4"屏幕并指定320*568的项目大小,但在模拟器中使用3.5"屏幕运行,其高度为480.解决方案是指定您的项目大小代码类似于:
UICollectionViewFlowLayout *layout = (id) self.collectionView.collectionViewLayout;
layout.itemSize = self.collectionView.frame.size;
Run Code Online (Sandbox Code Playgroud)
这可确保在运行时正确设置单元格大小.
Dar*_*koM 10
如果你正在使用故事板和自动布局,调试这类问题真的很难......
尝试在iPhone上显示UICollectionViewCell全屏时,我遇到了类似的问题.
大部分时间问题都与单元格的大小有关
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)
Run Code Online (Sandbox Code Playgroud)
或直接在flowLayout.itemSize上.
但是......试试:


现在尝试设置自动布局约束.
祝好运.
| 归档时间: |
|
| 查看次数: |
48788 次 |
| 最近记录: |