UIViewController menyimpan referensi ke UICollectionView. Pengontrol harus memodifikasi tata letak aliran bawaan menggunakan UICollectionViewDelegateFlowLayout.
Cukup mudah untuk menyetel sumber data tampilan ke sendiri:
MyViewController.m
- (void)viewDidLoad
{
self.collectionView.dataSource = self;
}
Tapi bagaimana cara mengatur pengontrol menjadi tata letak aliran delegasi tampilan?
- (void)viewDidLoad
{
self.collectionView.dataSource= self;
// self.collectionView.??? = self;
}
Saya sudah mencoba:
- (void)viewDidLoad
{
self.collectionView.dataSource= self;
self.collectionView.collectionViewLayout = self;
}
Tapi saya mendapatkan kesalahan: "Jenis penunjuk tidak kompatibel yang menetapkan ...".
File header koleksi terlihat seperti ini:
MyViewController.h
@interface MyViewController : UIViewController <UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>
sumber
self.collectionViewLayout = UICollectionViewFlowLayout()
,self.collectionViewLayout = [[UICollectionViewFlowLayout alloc]init]
Menurut jawaban sebelumnya hanya contoh penggunaan. Ini benar-benar tidak jelas tetapi saya dapat menunjukkan cara kerjanya:
sumber
Dua sen saya untuk macOS Mojave - Swift
(Saya telah jatuh ke sini mencari
NSCollectionView
... Saya tahu pertanyaannya tentangUICollectionView
..)Semua yang dikatakan di atas (menentukan delegasi menyiratkan ukuran sel, juga) benar untuk macOS juga.
CATATAN : Jika Anda menulis:
metode:
akan dipanggil.
Jika dihapus, tidak ada metode delegasi yang akan dipanggil. (karena kelas tidak mematuhi protokol).
sumber