Saya memiliki UITableViewController
subclass dengan bagian. Bagian ditampilkan dengan gaya default (tidak ada sudut membulat). Bagaimana cara mengatur gaya TableView untuk dikelompokkan dalam kode? Saya tidak menggunakan Interface Builder untuk ini, jadi saya membutuhkan sesuatu seperti
[self.tableView setGroupedStyle]
Saya mencari di Stack Overflow, tetapi tidak dapat menemukan jawaban.
ios
objective-c
uitableview
cocoa-touch
raja nevan
sumber
sumber
Jawaban:
Jika saya mengerti apa yang Anda maksud, Anda harus menginisialisasi pengontrol Anda dengan gaya itu. Sesuatu seperti:
myTVContoller = [[UITableViewController alloc] initWithStyle:UITableViewStyleGrouped];
sumber
Anda dapat melakukan hal berikut:
UITableView *myTable = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
Cepat 3:
let tableView = UITableView.init(frame: CGRect.zero, style: .grouped)
sumber
UITableView
, jawaban yang diterima adalah aUITableViewController
.CGRectZero
bersama dengan gaya tampilan tabel Anda dan kemudian tambahkan batasan Anda dan Anda mendapatkan gaya yang tepat bersama dengan batasan Anda.Saya memberikan solusi saya, saya bekerja dalam "mode XIB", berikut kode subclass dari UITableViewController:
-(id)initWithCoder:(NSCoder *)aDecoder { self = [super initWithStyle:UITableViewStyleGrouped]; return self; }
sumber
Kode di bawah ini Bekerja untuk saya, saya juga menggunakan kelas UITableview
- (id)initWithStyle:(UITableViewStyle)style { self = [super initWithStyle:UITableViewStyleGrouped]; if (self) { } return self; }
sumber
Jika Anda mewarisi UITableViewController, Anda bisa menginisialisasi tableView lagi.
Tujuan C:
self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
Cepat:
self.tableView = UITableView(frame: CGRect.zero, style: .grouped)
sumber
Pengaturan yang tidak sesulit yang disebutkan dalam pertanyaan. Sebenarnya ini sangat sederhana. Coba ini di papan cerita.
sumber
Cepat 4
Menggunakan TableView Normal
Menggunakan TPKeyboardAvoidingTableView
sumber
Swift 4+:
let myTableViewController = UITableViewController(style: .grouped)
sumber
Untuk menyetel gaya yang dikelompokkan di ui itu sendiri: -Pilih TableView lalu ubah "gaya" (di inspektur atribut)) dari biasa menjadi Dikelompokkan.
sumber
Anda juga dapat melakukan ini jika Anda ingin menggunakannya pada subkelas yang telah Anda buat dalam file swift terpisah (mungkin tidak 100% benar tetapi berfungsi)
override init(style: UITableViewStyle) { super.init(style: style) UITableViewStyle.Grouped } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") }
Sekarang di appdelegate.swift Anda dapat memanggil:
sumber
Anda dapat melakukannya dengan menggunakan storyboard / XIB juga
sumber
Jika Anda memiliki satu TableView untuk lebih banyak tabel, dan salah satu tabel ini dikelompokkan dan yang lainnya polos, Anda dapat mensimulasikan gaya polos dengan fungsi dari UITableViewDelegate:
override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return CGFloat.min }
sumber
cepat 4
jika Anda tidak ingin menggunakan storyboard, ini mungkin bisa membantu.
Anda dapat menambahkan tampilan tabel dan mengatur properti dalam penutupan:
lazy var tableView: UITableView = { let tableView = UITableView(frame: .zero, style: .grouped) tableView.backgroundColor = UIColor(named: Palette.secondaryLight.rawValue) tableView.rowHeight = 68 tableView.separatorStyle = .none tableView.translatesAutoresizingMaskIntoConstraints = false return tableView }()
lalu tambahkan subview dan setel batasan.
sumber
Anda juga dapat mencoba memperjelas warna garis pemisah yang dapat memberikan efek gaya yang dikelompokkan:
[myTVContoller.tableView setSeparatorColor:[UIColor clearColor]];
sumber
Kamu bisa memakai:
(instancetype)init { return [[YourSubclassOfTableView alloc] initWithStyle:UITableViewStyleGrouped]; }
sumber
self.tableView.style = UITableViewStyleGrouped
EDIT:
Menganggap ini adalah properti baca / tulis. Dalam hal ini, Anda dapat mengikuti saran Dimitris dan mengatur gaya saat Anda membuat instantiate controller, atau (jika Anda menggunakan XIB), Anda dapat mengaturnya melalui IB.
sumber