子类化 UICollectionView
Subclassing UICollectionView
有人知道如何在 Xamarin.iOS 中对 UICollectionView
进行子类化吗?
我试过了
public class MyCustomUICollectionView : UICollectionView
{
[Export ("initWithFrame:")]
public InfinitiveScrollingUICollectionView (CGRect frame) : base(frame)
{
// initialization
}
}
但我明白了
The best overloaded method match for UIKit.UICollectionView.UICollection(Foundation.NSCoder) has some invalid arguments
Argument #1 cannot convert
CoreGraphics.CGRectexpression to type
Foundation.NSCoder`.
我也尝试使用 public InfinitiveScrollingUICollectionView ()
但我得到
The type UIKit.UICollectionView
does not contain a constructor that takes '0' arguments
我想覆盖 LayoutSubviews
。或者 UICollectionViewController
应该用于这样的目的吗?
UICollectionView
没有接受单个 CGRect
的构造函数,所以你也必须传递一个布局:
public class MyCustomUICollectionView : UICollectionView
{
public MyCustomUICollectionView(CGRect frame, UICollectionViewLayout layout)
: base(frame, layout)
{
}
}
如果你愿意,你也可以在内部创建布局,这样你就不必从外部传递它了:
public class MyCustomUICollectionView : UICollectionView
{
private static readonly UICollectionViewLayout _layout;
static MyCustomUICollectionView()
{
// Just an example
_layout = new UICollectionViewFlowLayout();
}
public MyCustomUICollectionView(CGRect frame) : base(frame, _layout)
{
}
}
有人知道如何在 Xamarin.iOS 中对 UICollectionView
进行子类化吗?
我试过了
public class MyCustomUICollectionView : UICollectionView
{
[Export ("initWithFrame:")]
public InfinitiveScrollingUICollectionView (CGRect frame) : base(frame)
{
// initialization
}
}
但我明白了
The best overloaded method match for
UIKit.UICollectionView.UICollection(Foundation.NSCoder) has some invalid arguments Argument #1 cannot convert
CoreGraphics.CGRectexpression to type
Foundation.NSCoder`.
我也尝试使用 public InfinitiveScrollingUICollectionView ()
但我得到
The type
UIKit.UICollectionView
does not contain a constructor that takes '0' arguments
我想覆盖 LayoutSubviews
。或者 UICollectionViewController
应该用于这样的目的吗?
UICollectionView
没有接受单个 CGRect
的构造函数,所以你也必须传递一个布局:
public class MyCustomUICollectionView : UICollectionView
{
public MyCustomUICollectionView(CGRect frame, UICollectionViewLayout layout)
: base(frame, layout)
{
}
}
如果你愿意,你也可以在内部创建布局,这样你就不必从外部传递它了:
public class MyCustomUICollectionView : UICollectionView
{
private static readonly UICollectionViewLayout _layout;
static MyCustomUICollectionView()
{
// Just an example
_layout = new UICollectionViewFlowLayout();
}
public MyCustomUICollectionView(CGRect frame) : base(frame, _layout)
{
}
}