我目前正在尝试将 CollectionView 放入 Today 扩展中。
但有件事让我烦恼。
我希望实现每个单元格都适合我的集合视图的一行。
因此,根据项目数计算单元格宽度。
在 iPhone 上一切正常,但在 iPad 上却看起来不太正常。
单元格宽度太大。
所以我调试了我的代码,似乎 self.view.frame.width 或 self.view.bounds.width
返回屏幕的整个宽度,而不是通知中心的宽度。
难怪我的细胞太大了。
我正在计算我的物品尺寸,如下所示:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
CGFloat count = (CGFloat)[self.collectionView numberOfItemsInSection:0];
return CGSizeMake(self.collectionView.frame.size.width/count, 80.0);;
}
所以我现在的问题是,如何获得 ipad 上通知中心的“真实”宽度?
只是在这里猜测,但根据我对 UICollectionView 的经验,我想说你需要计算你的单元格大小viewDidLayoutSubviews
.
当您的委托方法被调用时(可能不久之后)viewDidLoad:
)视图可能尚未正确调整大小,因此返回错误的帧大小(所有视图控制器均使用全屏大小初始化,然后调整大小以适应)。
这样做在viewDidLayoutSubviews
应该保证您的 collectionViews Frame 已经正确。不过,您需要重新加载您的collectionView。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)