J'ai une sous-classe UITableViewController
avec des sections. Les sections sont affichées avec le style par défaut (pas de coins arrondis). Comment définir le style TableView sur groupé dans le code? Je n'utilise pas Interface Builder pour cela, alors j'ai besoin de quelque chose comme
[self.tableView setGroupedStyle]
J'ai cherché sur Stack Overflow, mais je n'ai pas pu trouver de réponse.
Si je comprends ce que vous voulez dire, vous devez initialiser votre contrôleur avec ce style. Quelque chose comme:
myTVContoller = [[UITableViewController alloc] initWithStyle:UITableViewStyleGrouped];
Vous pouvez faire ce qui suit:
UITableView *myTable = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
Swift 3:
let tableView = UITableView.init(frame: CGRect.zero, style: .grouped)
Je vous donne ma solution, je travaille en "mode XIB", voici le code d'une sous-classe d'un UITableViewController:
-(id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithStyle:UITableViewStyleGrouped];
return self;
}
Code ci-dessous Travaillé pour moi, j'utilise également la classe UITableview
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:UITableViewStyleGrouped];
if (self)
{
}
return self;
}
Si vous héritez de UITableViewController, vous pouvez simplement initialiser tableView.
Objectif c:
self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
Swift 4:
self.tableView = UITableView(frame: CGRect.zero, style: .grouped)
Vous pouvez également le faire si vous souhaitez l'utiliser sur une sous-classe que vous avez déjà créée dans un fichier Swift séparé (probablement pas correct à 100% mais fonctionne)
override init(style: UITableViewStyle) {
super.init(style: style)
UITableViewStyle.Grouped
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
Maintenant, dans votre appdelegate.Swift, vous pouvez appeler:
let settingsController = SettingsViewController(style: .Grouped)
Swift 4+:
let myTableViewController = UITableViewController(style: .grouped)
Pour définir le style groupé dans l'interface utilisateur elle-même: -Sélectionnez TableView, puis changez le "style" (dans l'inspecteur d'attributs)) de brut à groupé.
Swift 4
Utiliser Normal TableView
let tableView = TableView(frame: .zero, style: .grouped)
Utilisation de TPKeyboardAvoidingTableView
let tableView = TPKeyboardAvoidingTableView(frame: .zero, style: .grouped)
Vous pouvez le faire avec storyboard/XIB également
Swift 4
si vous ne voulez pas utiliser le storyboard, cela pourrait être une aide.
vous pouvez ajouter une vue tabulaire et définir des propriétés dans une fermeture:
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
}()
puis ajoutez dans la sous-vue et définissez des contraintes.
Si vous avez une TableView pour plusieurs tables, et que l'une de ces tables est groupée et l'autre, vous pouvez simuler le style brut avec la fonction UITableViewDelegate
override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return CGFloat.min
}