为了账号安全,请及时绑定邮箱和手机立即绑定

CollectionView 单元格高度不会自动调整大小

CollectionView 单元格高度不会自动调整大小

C#
萧十郎 2022-07-23 17:12:23
因此,我在 Xamarin iOS 项目中遇到了 UICollectionView 的一些问题。CollectionView 的单元格没有随着其中的标签展开。单元格中的标签具有设置为 0 的行和以下约束:(顶部,底部,前导,尾随)到超级视图高度 >= 10在我的ViewDidLoad()我设置 CollectionView 如下:var source = new CustomCollectionViewSource(collectionView);        collectionView.Source = source;        collectionView.SetCollectionViewLayout(new UICollectionViewFlowLayout()        {            ScrollDirection = UICollectionViewScrollDirection.Vertical,            EstimatedItemSize = new CGSize(collectionView.Frame.Width, 10)        }, false);        var set = this.CreateBindingSet<MainViewController, MainViewModel>();        set.Bind(source).For(v => v.ItemsSource).To(vm => vm.DataSource);        set.Apply();和我的CollectionViewSource public class CustomCollectionViewSource : MvxCollectionViewSource{    public IList<Item> Messages { get; set; }    public override void ReloadData()    {        var list = (ItemsSource as IEnumerable<Item>).ToArray();        Messages = list;    }    public CustomCollectionViewSource(UICollectionView collectionView) : base(collectionView)    {        collectionView.RegisterNibForCell(CustomCollectionViewCell.Nib, CustomCollectionViewCell.Key);    }    public override UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath)    {        var cell = collectionView.DequeueReusableCell(CustomCollectionViewCell.Key, indexPath) as CustomCollectionViewCell;        cell.DataContext = Messages.ElementAtOrDefault(indexPath.Row);        return cell;    }}我试图让单元格成为集合视图的宽度,并使高度灵活;但是,每当我填充单元格时,我总是会得到这样的结果: 单元格被截断并且最后有一个椭圆。我在网上读到,约束必须正确才能动态调整大小,所以我缺少什么吗?https://i.stack.imgur.com/7hA9g.png https://i.stack.imgur.com/GY6wi.png 我还读到,要获得每个单元格的计算高度,我可以加载单元格的笔尖,填充它,然后在自定义 UICollectionViewDelegate 中手动设置大小。很酷的想法,但我可以找到任何适用于 Xamarin iOS 的工作示例。如果我遗漏了什么或您需要任何其他信息,请告诉我。提前致谢!
查看完整描述

1 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

1.使您的标签支持多行

textLabel.LineBreakMode = UILineBreakMode.WordWrap;textLabel.Lines = 0;

2.设置单元格估计高度

cell.estimatedItemSize = UICollectionViewFlowLayoutAutomaticSize

注意事项:

  • 要定义单元格的高度,您需要一个完整的
    约束链和视图(具有定义的高度)来填充
    内容视图的顶部边缘和底部边缘之间的区域。

  • 如果您的视图具有内在的内容高度,系统将使用这些值。如果没有,您必须将适当的高度约束添加到视图或内容视图本身。


查看完整回答
反对 回复 2022-07-23
  • 1 回答
  • 0 关注
  • 123 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信