UICollectionViewDelegateFlowLayout http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UICollectionViewDelegateFlowLayout_protocol/Reference/Reference.html有一个方法叫做项目尺寸 http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UICollectionViewDelegateFlowLayout_protocol/Reference/Reference.html (获取项目大小 http://iosapi.xamarin.com/index.aspx?link=M:MonoTouch.UIKit.UICollectionViewDelegateFlowLayout.GetSizeForItem%28MonoTouch.UIKit.UICollectionView,MonoTouch.UIKit.UICollectionViewLayout,MonoTouch.Foundation.NSIndexPath%29在 MonoTouch 中)。
但我没有显式提供委托,而是从 UICollectionViewController 继承。
它混合了数据源和委托功能,但没有要重写的方法。
我尝试将其添加到我的控制器中:
[Export ("collectionView:layout:sizeForItemAtIndexPath:")]
public virtual SizeF GetSizeForItem (UICollectionView collectionView, UICollectionViewLayout layout, NSIndexPath indexPath)
{
return new SizeF (100, 100);
}
但它从未被调用过。
如何在不分离委托和数据源的情况下提供此方法?
你不能。在 Obj-C 中,视图控制器(或任何类)对象可以采用委托协议。这在 Monotouch 中是不可能的。您指定使用委托实例。但这可以是私人课程
public class CustomCollectionViewController:UICollectionViewController
{
public CustomCollectionViewController():base()
{
this.CollectionView.Delegate = new CustomViewDelegate();
}
class CustomViewDelegate: UICollectionViewDelegateFlowLayout
{
public override System.Drawing.SizeF GetSizeForItem (UICollectionView collectionView, UICollectionViewLayout layout, NSIndexPath indexPath)
{
return new System.Drawing.SizeF (100, 100);
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)