问题描述
我一直试图找出 UICollectionView.CellRegistration
我可以看到有一个 UICollectionViewCellRegistration.GetRegistration,但我不确定如何调用通用版本或至少为 GetRegistration 提供一个 ItemType。
解决方法
引自官方docs:
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.NSObject item);
}
例如:
var c = UICollectionViewCellRegistration.GetRegistration(typeof(UICollectionViewListCell),(cell,index,item)=> {
});