我一直在试图弄清楚UICollectionView的确切位置。CellRegistration<单元格类型,项目类型>。
我可以看到有一个UICollectionViewCellRegistration。GetRegistration,但不确定如何调用Generic版本,或者至少为GetRegistrations版本提供ItemType。
引用官方文档:
public class UICollectionViewCellRegistration : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
// constructors
protected UICollectionViewCellRegistration (Foundation.NSObjectFlag t);
protected UICollectionViewCellRegistration (IntPtr handle);
// properties
public virtual ObjCRuntime.Class CellClass { get; }
public virtual UINib CellNib { get; }
public System.Type CellType { get; }
public override IntPtr ClassHandle { get; }
public virtual UICollectionViewCellRegistrationConfigurationHandler ConfigurationHandler { get; }
// methods
public static UICollectionViewCellRegistration GetRegistration (ObjCRuntime.Class cellClass, UICollectionViewCellRegistrationConfigurationHandler configurationHandler);
public static UICollectionViewCellRegistration GetRegistration (System.Type cellType, UICollectionViewCellRegistrationConfigurationHandler configurationHandler);
public static UICollectionViewCellRegistration GetRegistration (UINib cellNib, UICollectionViewCellRegistrationConfigurationHandler configurationHandler);
}
和
public sealed delegate UICollectionViewCellRegistrationConfigurationHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
// constructors
public UICollectionViewCellRegistrationConfigurationHandler (object object, IntPtr method);
// methods
public virtual System.IAsyncResult BeginInvoke (UICollectionViewCell cell, Foundation.NSIndexPath indexPath, Foundation.NSObject item, System.AsyncCallback callback, object object);
public virtual void EndInvoke (System.IAsyncResult result);
public virtual void Invoke (UICollectionViewCell cell, Foundation.NSIndexPath indexPath, Foundation.NSObject item);
}
例如:
var c = UICollectionViewCellRegistration.GetRegistration(typeof(UICollectionViewListCell), (cell, index,item)=> {
});