我正在尝试实施一个CollectionView。当我使用“自动布局”时,单元格不会更改大小,而是对齐。
CollectionView
现在我想将其大小更改为例如
//var size = CGSize(width: self.view.frame.width/10, height: self.view.frame.width/10)
我尝试设置 CellForItemAtIndexPath
CellForItemAtIndexPath
collectionCell.size = size
虽然没有用。
有没有办法做到这一点?
编辑 :
看来,答案只会改变我的CollectionView宽度和高度本身。约束中可能存在冲突吗?有什么想法吗?
使用此方法设置自定义像元高度宽度。
确保添加此协议
UICollectionViewDelegate UICollectionViewDataSource UICollectionViewDelegateFlowLayout
如果您使用的是 swift 5 或 xcode 11 及更高版本,则需要设置Estimate Size为none使用情节提要以使其正常运行。如果您未设置,则下面的代码将无法正常工作。
Estimate Size
none
Swift 4或更高版本
extension YourViewController: UICollectionViewDelegate { //Write Delegate Code Here } extension YourViewController: UICollectionViewDataSource { //Write DataSource Code Here } extension YourViewController: UICollectionViewDelegateFlowLayout { func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { return CGSize(width: screenWidth, height: screenWidth) } }
目标C
@interface YourViewController : UIViewController<UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout> - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { return CGSizeMake(CGRectGetWidth(collectionView.frame), (CGRectGetHeight(collectionView.frame))); }