web-dev-qa-db-ja.com

UITableViewをグループ化されたスタイルに設定するにはどうすればよいですか

セクションを持つUITableViewControllerサブクラスがあります。セクションはデフォルトのスタイルで表示されます(角の丸みはありません)。 TableViewスタイルをコードでグループ化するにはどうすればよいですか?私はこれにInterface Builderを使用していないので、次のようなものが必要です

[self.tableView setGroupedStyle]

Stack Overflowで検索しましたが、答えが見つかりませんでした。

80
nevan king

私があなたの意味を理解しているなら、あなたはそのスタイルでコントローラーを初期化しなければなりません。何かのようなもの:

myTVContoller = [[UITableViewController alloc] initWithStyle:UITableViewStyleGrouped];
100
Dimitris

次のことができます。

UITableView *myTable = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];

スウィフト3:

let tableView = UITableView.init(frame: CGRect.zero, style: .grouped)
123
Lior

私はあなたに私のソリューションを与えます、私は「XIBモード」で作業しています、ここではUITableViewControllerのサブクラスのコードです:

-(id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithStyle:UITableViewStyleGrouped];
    return self;
}
21
Thomas Decaux

以下のコードは私のために働いた、私はUITableviewクラスも使用しています

- (id)initWithStyle:(UITableViewStyle)style
{
     self = [super initWithStyle:UITableViewStyleGrouped];

     if (self)
    {

     }
    return self;
}
14
Gagan Joshi

UITableViewControllerを継承している場合は、tableViewを再度初期化できます。

目標C:

self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];

スウィフト4:

self.tableView = UITableView(frame: CGRect.zero, style: .grouped)
6
DZoki019

質問で述べたように、それほど難しくない設定。実際には非常に簡単です。ストーリーボードでこれを試してください。

enter image description here

5
Fangming

すでに別の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)
2
Jordi Bruin

Swift 4 +:

let myTableViewController = UITableViewController(style: .grouped)
2
Juan Boero

UI自体でグループ化されたスタイルを設定する場合:-TableViewを選択し、「スタイル」(属性インスペクター内))をプレーンからグループ化に変更します。

2
Zeesha

Swift 4

通常のTableViewを使用

let tableView = TableView(frame: .zero, style: .grouped)

TPKeyboardAvoidingTableViewを使用

let tableView = TPKeyboardAvoidingTableView(frame: .zero, style: .grouped)
2

ストーリーボード/ XIBを使用してこれを行うこともできます

  1. ストーリーボードに移動-> viewControllerを選択->テーブルを選択
  2. インターフェイスビルダーで「スタイル」プロパティを選択します
  3. 「グループ化」を選択します
  4. 完了
1
Anny

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
    }()

次に、サブビューに追加し、制約を設定します。

0
moraei

より多くのテーブルに1つのTableViewがあり、このテーブルの1つがグループ化され、もう1つがプレーンの場合、UITableViewDelegateの関数を使用してプレーンスタイルをシミュレートできます。

override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {   
    return CGFloat.min
}
0
Illya Krit