因此,我在 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 的工作示例。
如果我遗漏了什么或您需要任何其他信息,请告诉我。提前致谢!
精慕HU
相关分类