Pei*_*Pei 6 objective-c collectionview ios autolayout
所以我正在使用UICollectionViewunder AutoLayout-enabled storyboard.我正在尝试根据collectionView自身设置单元格大小,它基于[collectionView: layout: sizeForItemAtIndexPath:]方法.
collectionView也取决于自动布局,它第一次给出错误的大小(我假设这是在视图布局之前).我知道在viewDidLayoutSubviews调用方法后它们将具有正确的大小,但是它会导致collectionView项目的双重重载,这会在运行时产生UI故障.
这是[collectionView: layout: sizeForItemAtIndexPath:]我实施的方法.
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
CGSize innerSize = CGSizeMake(galleryView.frame.size.width - 80, galleryView.frame.size.height - 40);
GLPhotoAsset *photo = [(PCOpticsPhotoPoint *)_cluster.points[indexPath.row] photo];
CGFloat ratio = MIN(innerSize.width / photo.size.width, innerSize.height / photo.size.height);
return CGSizeMake(photo.size.width * ratio, photo.size.height * ratio);
}
Run Code Online (Sandbox Code Playgroud)
确保视图的 Clip Subviews 属性已选中。。。。
并且您的 collectionView 属性 cellSize 必须在 Size & Location Section 中正确。。。
也许这对你有帮助。。。
| 归档时间: |
|
| 查看次数: |
4592 次 |
| 最近记录: |