セクションを持つUITableViewController
サブクラスがあります。セクションはデフォルトのスタイルで表示されます(角の丸みはありません)。 TableViewスタイルをコードでグループ化するにはどうすればよいですか?私はこれにInterface Builderを使用していないので、次のようなものが必要です
[self.tableView setGroupedStyle]
Stack Overflowで検索しましたが、答えが見つかりませんでした。
私があなたの意味を理解しているなら、あなたはそのスタイルでコントローラーを初期化しなければなりません。何かのようなもの:
myTVContoller = [[UITableViewController alloc] initWithStyle:UITableViewStyleGrouped];
次のことができます。
UITableView *myTable = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
スウィフト3:
let tableView = UITableView.init(frame: CGRect.zero, style: .grouped)
私はあなたに私のソリューションを与えます、私は「XIBモード」で作業しています、ここではUITableViewControllerのサブクラスのコードです:
-(id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithStyle:UITableViewStyleGrouped];
return self;
}
以下のコードは私のために働いた、私はUITableviewクラスも使用しています
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:UITableViewStyleGrouped];
if (self)
{
}
return self;
}
UITableViewControllerを継承している場合は、tableViewを再度初期化できます。
目標C:
self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
スウィフト4:
self.tableView = UITableView(frame: CGRect.zero, style: .grouped)
すでに別のSwift=ファイル(おそらく100%正しくないが機能する)で作成したサブクラスで使用したい場合は、これを行うこともできます。
override init(style: UITableViewStyle) {
super.init(style: style)
UITableViewStyle.Grouped
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
これで、appdelegate.Swiftで次を呼び出すことができます。
let settingsController = SettingsViewController(style: .Grouped)
Swift 4 +:
let myTableViewController = UITableViewController(style: .grouped)
UI自体でグループ化されたスタイルを設定する場合:-TableViewを選択し、「スタイル」(属性インスペクター内))をプレーンからグループ化に変更します。
Swift 4
通常のTableViewを使用
let tableView = TableView(frame: .zero, style: .grouped)
TPKeyboardAvoidingTableViewを使用
let tableView = TPKeyboardAvoidingTableView(frame: .zero, style: .grouped)
ストーリーボード/ XIBを使用してこれを行うこともできます
Swift 4
ストーリーボードを使用したくない場合、これが役立つ場合があります。
テーブルビューを追加して、クロージャーにプロパティを設定できます。
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
}()
次に、サブビューに追加し、制約を設定します。
より多くのテーブルに1つのTableViewがあり、このテーブルの1つがグループ化され、もう1つがプレーンの場合、UITableViewDelegateの関数を使用してプレーンスタイルをシミュレートできます。
override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return CGFloat.min
}