UICollectionViewDelegateFlowLayout có phương pháp được gọi là sizeForItem (GetSizeForItem trong MonoTouch).Làm cách nào tôi có thể cung cấp triển khai GetSizeForItem trong UICollectionViewController?
Nhưng tôi không cung cấp cho đại biểu một cách rõ ràng — thay vào đó, tôi kế thừa từ UICollectionViewController.
Nó kết hợp nguồn dữ liệu và chức năng ủy nhiệm nhưng không có phương pháp này để ghi đè.
Tôi đã cố gắng thêm này để điều khiển của tôi:
[Export ("collectionView:layout:sizeForItemAtIndexPath:")]
public virtual SizeF GetSizeForItem (UICollectionView collectionView, UICollectionViewLayout layout, NSIndexPath indexPath)
{
return new SizeF (100, 100);
}
và nó chưa từng được gọi.
Làm cách nào để cung cấp phương pháp này mà không cần phải tách biệt đại biểu và nguồn dữ liệu?
Bạn không thể. Trong Obj-C đối tượng nguồn dữ liệu có thể áp dụng giao thức đại biểu. Đây không phải là posible trong Monotouch. – svn
@svn: Vậy giải pháp duy nhất là loại bỏ bộ điều khiển và sử dụng nguồn dữ liệu và ủy quyền thay thế? Nếu đây là trường hợp, xin vui lòng gửi nó như là một câu trả lời vì vậy tôi có thể chấp nhận nó. –
Bạn có thể xác định và gán cho bạn đại biểu tùy chỉnh và nguồn dữ liệu bên trong bộ điều khiển được phân lớp của bạn. Bằng cách này bạn chỉ có thể sử dụng biểu mẫu tùy chỉnh của bạn bên ngoài và bên trong sử dụng các đại biểu tùy chỉnh của bạn – svn