UICollectionViewDelegateFlowLayout ma metodę o nazwie sizeForItem (GetSizeForItem w MonoTouch).Jak mogę zapewnić implementację GetSizeForItem w UICollectionViewController?
Ale nie przekazuję delegata jawnie - zamiast tego, dziedziczę po UICollectionViewController.
Łączy źródło danych i funkcje delegowania, ale nie ma tej metody do przesłonięcia.
Próbowałem dodanie tego do mojego kontrolera:
[Export ("collectionView:layout:sizeForItemAtIndexPath:")]
public virtual SizeF GetSizeForItem (UICollectionView collectionView, UICollectionViewLayout layout, NSIndexPath indexPath)
{
return new SizeF (100, 100);
}
i nigdy nie został powołany.
Jak zapewnić tę metodę bez konieczności oddzielania delegata i źródła danych?
Nie możesz. W Obj-C obiekt źródła danych może przyjąć protokół delegata. To nie jest możliwe w Monotouch. – svn
@svn: A więc jedynym rozwiązaniem jest pozbycie się kontrolera i użycie źródła danych zamiast delegowania? Jeśli tak jest, opublikuj go jako odpowiedź, aby móc go zaakceptować. –
Możesz zdefiniować i przypisać Ci niestandardowego delegata i źródło danych w swoim podklasowanym kontrolerze. W ten sposób możesz po prostu użyć swojego kontrolera customcontroller na zewnątrz i wewnętrznie użyć swoich niestandardowych delegatów. – svn