我是Mvvmcross框架的新手,目前正在探索它的iOS部分(哦,也是iOS开发的新手,以绘制我当前情况的精美图片^^)。我正在使用vNext版本。
我发现了对UICollectionViewController(MvxTouchCollectionViewController和MvxBindableCollectionViewSource)实现的引用,但这些类似乎只是未来实现的框架(抽象类,至少缺少一种MvxSimpleBindableCollectionViewSource)。我没有找到使用此功能的示例。 我还发现了一个来自Stuart的博客文章,让我假设他正在研究这一部分(Work In Progress - MvvmCross lists sample)。
是否有人已经使用此部分并了解实现或使用示例?
我看了一下Stuart在其文章中提到的xaminar的10分钟,看起来非常有趣,对我来说是一个很好的起点。
答案 0 :(得分:1)
我在几个客户应用程序中使用了集合视图控制器,但我认为我没有发布任何使用它的开源示例。
从本质上讲,collectionview的使用与tableview和cell的使用非常相似 - 详见:http://slodge.blogspot.co.uk/2013/01/uitableviewcell-using-xib-editor.html
在vNext中,示例控制器可能如下所示:
public class MyCollectionView : BaseCollectionView<MyCollectionViewModel>
{
private bool _needToCallViewDidLoadManually;
public HubView (MvxShowViewModelRequest request)
: base(request, new UICollectionViewFlowLayout (){
ItemSize= new System.Drawing.SizeF (100, 100),
MinimumInteritemSpacing = 20.0f,
SectionInset = new UIEdgeInsets (10,50,20,50),
ScrollDirection = UICollectionViewScrollDirection.Vertical,
})
{
if (_needToCallViewDidLoadManually) {
ViewDidLoad();
}
}
public override void ViewDidLoad ()
{
if (ShowRequest == null) {
_needToCallViewDidLoadManually = true;
return;
}
base.ViewDidLoad ();
_needToCallViewDidLoadManually = false;
var source = new CollectionViewSource(CollectionView);
this.AddBindings(
new Dictionary<object, string>()
{
{ source, "ItemsSource TheItems" }
});
CollectionView.Source = source;
CollectionView.ReloadData();
}
public class CollectionViewSource : MvxBindableCollectionViewSource
{
public CollectionViewSource (UICollectionView collectionView)
: base(collectionView, MyViewCell.Identifier)
{
collectionView.RegisterNibForCell(UINib.FromName(MyViewCell.Identifier, NSBundle.MainBundle), MyViewCell.Identifier);
}
}
}
如果您现在正在开始开发,那么您也可以从考虑刚刚进入Beta的v3分支中受益。