调整包含 UICollectionView 的 UITableViewCell

Posted

技术标签:

【中文标题】调整包含 UICollectionView 的 UITableViewCell【英文标题】:Resize UITableViewCell containing UICollectionView 【发布时间】:2016-08-31 13:33:51 【问题描述】:

我有几个包含UICollecionView 的单元格。对于行高,我使用UITableViewAutomaticDimensionAutolayout。是否可以自动调整单元格大小以一次显示集合视图的全部内容而无需滚动?

例如此单元格中有 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;

【问题讨论】:

在不滚动什么集合视图或表格视图的情况下,您需要所有集合视图单元格都在表格视图单元格中,并且您不想滚动集合视图吗? 是的,我想扩展这个表格单元格以显示整个集合视图。 查看答案希望对您有所帮助 【参考方案1】:

你首先需要的是一个集合视图高度自动布局的 IBOutlet ,然后设置集合视图高度常量 = 集合视图内容 size.height ,停止集合视图滚动将解决你的问题

【讨论】:

快乐编码@bubupankowski 这在 XCODE 8.3.1 中不起作用,重复collectionview iboutlet 不能这样设置 @ShobhakarTiwari 这是简单的自动布局技巧。与 xcode 有什么关系? .请描述您的问题

以上是关于调整包含 UICollectionView 的 UITableViewCell的主要内容,如果未能解决你的问题,请参考以下文章

通过切换布局触发的动画 UICollectionView 单元格调整大小

视图转换后调整 UICollectionView 的大小

UICollectionView 单元格子视图不调整大小

下载内部图像后调整 UICollectionView 单元格的大小

在非滚动 UICollectionView 中动态调整 UICollectionViewCell 的大小

为啥 UICollectionView 不滚动其中的 UIButtons?