我有一些包含UICollecionView
的单元格。对于行高,我使用UITableViewAutomaticDimension
和Autolayout
。是否可以自动调整单元格大小以立即显示集合视图的整个内容而无需滚动?
例如此单元格中有4个标签:
编辑:自动调整功能正常,但对齐方式不正确。我试图用纯Autolayout
来做所有事情,而没有继承UICollectionViewFlowLayout
。最后一行总是正确的。我不知道为什么......
这是我的代码,不幸的是在Xamarin:
void ConfigureCollectionCell(ProfileEditCollectionCell cell, String property, IList list, nint tag)
{
cell.propertyName = property;
cell.collectionView.Tag = tag;
cell.collectionView.BackgroundColor = UIColor.White;
cell.collectionView.DataSource = this;
cell.collectionView.RegisterNibForCell(UINib.FromName("ProfileEntityCell", NSBundle.MainBundle), "profileEntityCell");
(cell.collectionView.CollectionViewLayout as UICollectionViewFlowLayout).EstimatedItemSize = new CoreGraphics.CGSize(150, 20);
var collectionHeight = NSLayoutConstraint.Create(cell.collectionView , NSLayoutAttribute.Height, NSLayoutRelation.Equal, 1, cell.collectionView.CollectionViewLayout.CollectionViewContentSize.Height);
cell.collectionView.AddConstraint(collectionHeight);
}
public UICollectionViewCell GetCell(UICollectionView collectionView, Foundation.NSIndexPath indexPath)
{
var cell = collectionView.DequeueReusableCell("profileEntityCell", indexPath) as ProfileEntityCell;
cell.BackgroundColor = UIColor.Red;
ConfigureCollectionEntity(cell, indexPath, collectionView.Tag); //not important
collectionView.SetNeedsUpdateConstraints();
collectionView.UpdateConstraints();
return cell as UICollectionViewCell;
}
答案 0 :(得分:0)
你首先需要的是采用IBOutlet的集合视图高度自动布局,然后设置集合视图高度常量=集合视图内容size.height,并停止集合视图滚动将解决您的问题