Saya punya UICollectionView
yang menunjukkan foto. Saya telah membuat tampilan koleksi menggunakan UICollectionViewFlowLayout
. Ini berfungsi baik tetapi saya ingin memiliki jarak pada margin. Apakah mungkin untuk melakukan itu menggunakan UICollectionViewFlowLayout
atau saya harus menerapkan sendiri UICollectionViewLayout
?
ios
uicollectionview
uikit
Mert
sumber
sumber
UICollectionViewDelegateFlowLayout
daftar delegasi ViewController Anda untuk menggunakan metode iniinsetForSectionAtIndex
Menyiapkan insets di Interface Builder seperti yang ditunjukkan pada gambar di bawah
Akan menghasilkan sesuatu seperti ini:
sumber
Untuk menambahkan spasi pada keseluruhan
UICollectionView
:Untuk bermain dengan spasi antara elemen-elemen dari baris yang sama (kolom jika Anda menggulir secara horizontal), dan ukurannya:
sumber
collection.collectionViewLayout
kebutuhan pemain seperti dalam contoh oleh @Pooja:UICollectionViewFlowLayout *flow = (UICollectionViewFlowLayout*) self.collectionViewLayout;
if let flow = collectionViewLayout as? UICollectionViewFlowLayout { flow.itemSize = CGSize(width: 100, height: 100) }
Cepat 4
EDIT XCode 11.4 dan cepat 5
tidak bekerja Gunakan karya di bawah ini.
let flow = UICollectionViewFlowLayout()
sumber
backgroundColor
daricollectionView
. Atau apa pun tampilan supernya.Hanya untuk memperbaiki beberapa informasi yang salah di halaman ini:
1- minimumInteritemSpacing : Jarak minimum untuk digunakan di antara item dalam baris yang sama.
Nilai default: 10.0.
(Untuk kisi gulir vertikal, nilai ini menunjukkan jarak minimum antara item dalam baris yang sama.)
2- minimumLineSpacing : Jarak minimum untuk digunakan di antara baris item dalam kisi.
Ref: http://developer.apple.com/library/ios/#documentation/uikit/reference/UICollectionViewFlowLayout_class/Reference/Reference.html
sumber
Modern Swift, Perhitungan Tata Letak Otomatis
Sementara utas ini sudah berisi banyak jawaban yang bermanfaat, saya ingin menambahkan versi Swift modern , berdasarkan jawaban William Hu. Ini juga meningkatkan dua hal:
Berikut kodenya:
sumber
itemsInOneLine
1 maka ini akan menghasilkan NaN karena membaginya dengan nol di sini:itemsInOneLine / (itemsInOneLine - 1)
gunakan
setMinimumLineSpacing:
dansetMinimumInteritemSpacing:
padaUICollectionViewFlowLayout
-Object.sumber
Menggunakan
collectionViewFlowLayout.sectionInset
ataucollectionView:layout:insetForSectionAtIndex:
benar.Namun, jika collectionView Anda memiliki beberapa bagian dan Anda ingin menambahkan margin ke seluruh collectionView, saya sarankan untuk menggunakan scrollView contentInset:
sumber
Untuk menempatkan spasi di antara
CollectionItem
s gunakan initulis dua Baris ini di viewdidload
sumber
Setel
insetForSectionAt
propertiUICollectionViewFlowLayout
objek yang dilampirkan pada AndaUICollectionView
Pastikan untuk menambahkan protokol ini
Cepat
Tujuan - C
sumber
Dalam Objective-C
Yang harus Anda lakukan adalah mengubah nilai itemsPerRow dan itu akan memperbarui jumlah item per baris yang sesuai. Selanjutnya, Anda dapat mengubah nilai spasi jika Anda ingin lebih atau kurang spasi umum.
sumber
Untuk menambahkan margin ke sel tertentu, Anda dapat menggunakan tata letak aliran kustom ini. https://github.com/voyages-sncf-technologies/VSCollectionViewCellInsetFlowLayout/
sumber
Di swift 4 dan autoLayout, Anda bisa menggunakan sectionInset seperti ini:
sumber
Untuk menambahkan pemisahan 10px antara setiap bagian tulis saja ini
sumber
sumber