Saya punya tempat di UITableView
mana pemisah tidak memiliki lebar penuh. Itu berakhir seperti 10 piksel sebelum sisi kiri. Saya bermain - main dengan kode ini di viewDidLoad()
.
self.tableView.layoutMargins = UIEdgeInsetsZero;
Juga di storyboard ketika Anda dapat memilih penyeleksi kustom atau default. Sekarang semua sel yang dihuni tidak memiliki selektor lebar penuh tetapi sel yang kosong memiliki lebar penuh.
Bagaimana saya bisa memperbaikinya?
ios
objective-c
iphone
uitableview
Timo Cengiz
sumber
sumber
UITableView
memiliki propertiseparatorInset
. Atur insetUITableView
pemisah garis ke nol. Anda juga dapat mengubahseparatorInset
dari storyboardJawaban:
Ini bekerja untuk saya di iOS 8.4 - 9.0 perangkat menggunakan Xcode 6.4 dan Swift 1.2:
Pembaruan Swift 5:
sumber
Saya mendapat jawaban dari posting ini: iOS 8 UITableView separator inset 0 tidak berfungsi
Cukup tambahkan kode ini di blog Anda
UITableViewController
sumber
viewDidLayoutSubviews
ini tidak perluDi Anda
UITableViewCell
Buka Pemeriksa Atribut di Pembuat Antarmuka Anda dan cukup ubah "15" menjadi 0. Lakukan ini untuk semua sel yang ingin Anda ubah.
Anda mungkin perlu menambahkan
[cell setLayoutMargins:UIEdgeInsetsZero];
ketableViewCell
sumber
untuk Swift 3:
sumber
UITableViewCell
left
dan / atauright
bidang. (Secara defaultleft: 15
,right: 0
)Lihat cara kerjanya (menggunakan
left: 100
):Hasil:
sumber
Saya mewarisi dari
UITableViewController
dan perlu tambahan untuk pengaturan dua insetwillDisplayCell
juga untuk mengaturpreservesSuperviewLayoutMargins
ke false. Di Swift terlihat seperti ini:sumber
preservesSuperviewLayoutMargins = false
karena nilai default sudah salahPemisah
Inset
secara default 15 dari kiri. UbahInset
opsi Pemisah dariauto
menjadicustom
dan atur inset ke0
.sumber
Untuk Swift di iOS 9+
Jika menggunakan kebiasaan
UITableViewCell
:maka untuk
UITableView
di AndaviewDidLoad
:sumber
Untuk orang-orang yang memiliki masalah dengan iPad - ini akan membuat Anda dalam keadaan yang sama dengan iPhone. Anda kemudian dapat menyesuaikan
separatorInset
sesuai kebutuhan.sumber
Gunakan dalam
cellForRowAtIndexPath
metode, untuk mengonfigurasi spesifikasi pemisah sel,ini berfungsi sempurna untuk iOS9.0 +
sumber
Diuji untuk iOS 9.3 & Swift 2.2. Pastikan untuk memasukkan kode
willDisplayCell
yang dipanggil tepat sebelum menampilkan sel dan bukan dicellForRowAtIndexPath
tempat Anda membuat sel saja.Tambahkan
override
ke fungsiUITableViewController
, seperti:sumber
Tidak ada yang di atas bekerja untuk saya di Swift 2.2 dan Xcode 7.3.1
Ternyata menjadi solusi paling sederhana dari semuanya. Tidak diperlukan kode. Cukup ubah
TableViewCell
nilai Layout Margin diUITableView
inspektur Anda :sumber
Untuk Swift 3:
sumber
In
viewDidLoad
(diuji iOS11 - cepat 4.1)mencoba
tableView.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0)
sumber
Tidak satu pun dari solusi ini yang berfungsi pada iPad, tetapi saya telah menemukan solusi yang mencakup kedua perangkat:
Dengan sel yang dapat digunakan kembali:
Dengan sel yang tidak dapat digunakan kembali:
Untuk memperluas pendekatan ini:
Kedua properti dapat digunakan oleh
UITableView
&UITableViewCell
. Yang terakhir adalah, pada kenyataannya, properti dariUIView
, yang merupakan kelas induk dari keduanyaUITableView
&UITableViewCell
.sumber
cepat 5, Pembaruan Xcode 11
tempatkan ini di dalam viewDidLoad ()
untuk pemisah ujung ke ujung hanya mengatur nilai kiri dan kanan ke 0.
dengan cara mengubah "yourTableView" menjadi nama TableView Outlet Anda.
sumber