Pembuat antarmuka (iOS 9+)
Seret UIView ke meja. Di storyboard, itu akan duduk di bagian atas di bawah sel khusus Anda. Anda mungkin lebih suka menyebutnya "footer".
Ini ditunjukkan dengan warna hijau untuk kejelasan, Anda mungkin ingin warna yang jelas.
Perhatikan bahwa dengan menyesuaikan ketinggian, Anda dapat memengaruhi cara "bouncing bawah" tabel ditangani, seperti yang Anda inginkan. (Tinggi nol biasanya baik-baik saja).
Untuk melakukannya secara terprogram:
Cepat
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.tableFooterView = UIView()
}
Objektif-C
iOS 6.1+
- (void)viewDidLoad
{
[super viewDidLoad];
// This will remove extra separators from tableview
self.tableView.tableFooterView = [UIView new];
}
atau jika Anda lebih suka,
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
Secara historis di iOS:
Tambahkan ke pengontrol tampilan tabel ...
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
// This will create a "invisible" footer
return CGFLOAT_MIN;
}
dan jika perlu ...
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
return [UIView new];
// If you are not using ARC:
// return [[UIView new] autorelease];
}
tableFooterView
daun pemisah pada sel terakhir di baris, karena tabel masih mengantisipasi konten di bawah sel itu. Menggunakan cara historis akan menghilangkan pemisah terakhir dan terlihat lebih baik secara keseluruhan.Berikut cara lain untuk melakukannya tanpa menggunakan gaya tabel yang dikelompokkan, dan yang mungkin tidak Anda duga. Menambahkan
header danfooter ke tabel(mungkin satu atau yang lain sudah cukup, belum diperiksa)menyebabkan pemisah menghilang dari baris pengisi / kosong.Saya menemukan ini karena saya ingin sedikit ruang di bagian atas dan bawah meja untuk mengurangi risiko menekan tombol daripada sel meja dengan jari gemuk. Berikut adalah metode untuk menempel tampilan kosong sebagai header dan footer. Gunakan ketinggian apa pun yang Anda suka, Anda masih menghilangkan garis pemisah ekstra.
Menanggapi @Casebash, saya kembali ke kode di aplikasi saya ("AcmeLists" List Manager di iTunes store ...) dan memotong pendek metode addHeaderAndFooter untuk memverifikasi. Tanpa itu , saya memiliki pemisah baris tambahan; dengan kode, saya memiliki apa yang Anda lihat di jepretan jendela ini: tidak ada gambar pemisah baris tabel . Jadi saya tidak yakin mengapa itu tidak berhasil untuk Anda. Selain itu, masuk akal bagi saya bahwa memiliki footer kustom pada tampilan tabel tentu harus berhenti menggambar pemisah baris untuk baris kosong di bawahnya. Itu akan mengerikan. Sebagai referensi, saya melihat tabel di mana ada lebih banyak baris daripada yang bisa dilihat di layar, dan kemudian untuk tabel dengan dua baris. Dalam kedua kasus, tidak ada pemisah asing.
Mungkin tampilan khusus Anda sebenarnya tidak ditambahkan. Untuk memeriksa itu, atur warna latar belakang ke sesuatu selain
clearColor
, misalnya[UIColor redColor]
,. Jika Anda tidak melihat beberapa bilah merah di bagian bawah tabel, footer Anda tidak disetel.sumber
Menghapus garis pemisah tambahan untuk baris kosong di UITableView di Swift
sumber
Saya ingin menyampaikan jawaban wkw :
Cukup menambahkan hanya footer dengan tinggi 0 akan melakukan trik. (diuji pada SDK 4.2, 4.4.1)
atau bahkan lebih sederhana - tempat Anda mengatur tampilan tabel, tambahkan baris ini:
atau bahkan lebih sederhana - untuk menghapus pemisah apa pun:
Terima kasih untuk wkw lagi :)
sumber
Untuk iOS 7+ menggunakan Storyboards
Cukup seret
UIView
ke dalam AndaUITableView
sebagai footer. Atur tinggi tampilan footer ke 0.sumber
Coba ini. Ini bekerja untuk saya:
sumber
Untuk Swift:
sumber
Jika Anda menggunakan Swift, tambahkan kode berikut untuk viewDidLoad dari pengontrol yang mengelola tampilan tabel:
sumber
Anda bisa menambahkan footer kosong di bagian akhir kemudian akan menyembunyikan sel-sel yang kosong tetapi juga akan terlihat sangat jelek:
Ada pendekatan yang lebih baik: tambahkan garis 1 titik di akhir tampilan tabel karena footer dan sel-sel kosong juga tidak akan ditampilkan lagi.
sumber
cukup tambahkan kode ini ( Swift ). .
sumber
Memajukan solusi J. Costa: Anda dapat membuat perubahan global ke tabel dengan meletakkan baris kode ini:
di dalam metode pertama yang mungkin (biasanya di
AppDelegate
, dalam:application:didFinishLaunchingWithOptions:
metode).sumber
Saya tahu pertanyaan ini telah diterima tetapi saya menempatkan di sini cara yang berbeda untuk menyembunyikan garis pemisah ekstra
UITableView
.Anda dapat menyembunyikan
tableView
garis pemisah standar, dan menambahkan garis kustom di bagian atas setiap sel.Memperbarui:
Cara termudah untuk menambahkan pemisah khusus adalah dengan menambahkan sederhana dengan
UIView
tinggi 1px:ATAU
ATAU
ATAU Cara terbaik dan sederhana yang saya suka adalah
Coba yang mana saja;
sumber
Anda mungkin menemukan banyak jawaban untuk pertanyaan ini. Sebagian besar dari mereka di sekitar manipulasi dengan
UITableView
'stableFooterView
atribut dan ini adalah cara yang tepat untuk menyembunyikan baris kosong. Untuk penyelenggaraan, saya telah membuat ekstensi sederhana yang memungkinkan untuk menghidupkan / mematikan baris kosong dari Interface Builder. Anda dapat memeriksanya dari file inti ini . Saya harap ini bisa menghemat sedikit waktu Anda.Pemakaian:
sumber
uitableview sembunyikan garis pemisah ekstra sembunyikan garis pemisah tambahan di swift 3.0
sumber
Jika Anda tidak ingin pemisah setelah sel terakhir, maka Anda membutuhkan tinggi mendekati nol tetapi tidak nol untuk footer Anda.
Di Anda
UITableViewDelegate
:sumber
Swift bekerja sangat baik dengan:
sumber
Tambahkan saja tampilan dengan warna pemisah yang diinginkan sebagai warna latar, lebar 100%, tinggi 1px pada posisi x0 y-1 ke tableViewCell Anda. Pastikan tableViewCell tidak memotong subview, sebaliknya tableView seharusnya.
Jadi, Anda mendapatkan pemisah absolut yang sederhana dan berfungsi hanya antara sel yang ada tanpa per kode atau IB.
Catatan: Pada pantulan vertikal, separator pertama muncul, tetapi itu seharusnya tidak menjadi masalah karena itu adalah perilaku iOS default.
sumber
Saya menggunakan tampilan tabel untuk menunjukkan jumlah tetap baris tinggi tetap, jadi saya cukup mengubah ukurannya dan membuatnya tidak dapat digulir.
sumber
Untuk menghilangkan garis pemisah tambahan dari bagian bawah UItableview secara terprogram, cukup tulis dua baris kode berikut dan itu akan menghapus pemisah tambahan dari itu.
Trik ini bekerja untuk saya sepanjang waktu, coba sendiri.
sumber
Saya beruntung menerapkan sepotong jawaban yang diterima (iOS 9+, Swift 2.2). Saya telah mencoba menerapkan:
Namun, tidak ada efek pada saya
tableView
- saya percaya itu mungkin ada hubungannya dengan fakta yang saya gunakanUITableViewController
.Sebaliknya, saya hanya perlu mengganti
viewForFooterInSection
metode (saya tidak mengatur yangtableFooterView
lain):Ini bekerja dengan baik untuk
tableView
dengan satu bagian (jika Anda memiliki beberapa bagian, Anda perlu menentukan yang terakhir).sumber
Jika Anda hanya memiliki satu bagian, maka cara tercepat dan termudah adalah dengan mengatur Gaya Tampilan Tabel dari "Biasa" ke "Dikelompokkan". (lihat gambar)
Jika Anda memiliki lebih banyak bagian, Anda mungkin perlu mengatur tinggi tajuk menjadi nol (tergantung selera Anda / pelanggan Anda / manajer proyek Anda)
Jika Anda memiliki lebih banyak bagian, dan tidak ingin mengacaukan header (bahkan jika itu hanya satu baris dalam kasus paling sederhana), maka Anda perlu menetapkan UIView sebagai footer, seperti yang dijelaskan dalam jawaban sebelumnya)
sumber
Ekstensi Swift 4.0
Hanya sedikit ekstensi untuk storyboard:
sumber
Cepat dan mudah 4 cara Swift.
Jika Anda memiliki sel statis. Anda juga dapat mematikan pemisah dari jendela Inspektur. (ini tidak akan diinginkan jika Anda membutuhkan pemisah. Dalam hal ini gunakan metode yang ditunjukkan di atas)
sumber
super.viewDidLoad()
) dan termasuk dalam jawaban wiki di atas. Sedangkan untuk menghapus semua pemisah, itu sebenarnya bukan tentang pertanyaan ini, jadi lebih baik kembalikan edit terakhir Anda dan / atau hapus jawaban Anda sepenuhnya.Jika Anda ingin menghapus ruang yang tidak diinginkan di UITableview, Anda dapat menggunakan dua metode berikut
sumber
Saya telah menambahkan ekstensi tampilan tabel kecil ini yang membantu seluruh
sumber
Coba dengan ini
untuk Tujuan C
untuk Swift
sumber
Coba ini
sumber
UIKit
tidak membuat sel kosong ketikatableView
memilikitableFooterView
. Jadi kita bisa membuat trik dan menetapkanUIView
objek tinggi nol sebagai catatan kakitableView
.sumber
Jika Anda memiliki
searchbar
diview
(untuk membatasi jumlah hasil misalnya), Anda juga harus menambahkan berikut ini dalamshouldReloadTableForSearchString
danshouldReloadTableForSearchScope:
sumber
Dalam Swift (saya menggunakan 4.0), Anda dapat melakukannya dengan menciptakan kustom
UITableViewCell
kelas, danoverriding
yangsetSelected
metode. Laluseparator insets
semuanya ke 0 . (kelas utama saya dengan tampilan tabel memiliki latar belakang yang jelas) warna.sumber