uitableviewcell example custom ios objective-c uitableview cocoa-touch

ios - example - ¿Cómo puedo configurar un UITableView para un estilo agrupado?



uitableview swift 4 (15)

Configuración que no es tan difícil como se menciona en la pregunta. En realidad, es bastante simple. Prueba esto en el guión gráfico.

Tengo una subclase UITableViewController con secciones. Las secciones se muestran con el estilo predeterminado (sin esquinas redondeadas). ¿Cómo puedo configurar el estilo TableView para agruparlo en el código? No estoy usando Interface Builder para esto, así que necesito algo como

[self.tableView setGroupedStyle]

Busqué en Stack Overflow, pero no pude encontrar una respuesta.


Debajo del código Funcionó para mí, también estoy usando la clase UITableview

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


Le doy mi solución, estoy trabajando en "modo XIB", aquí el código de una subclase de UITableViewController:

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


Para establecer el estilo agrupado en el propio ui: -Seleccione TableView y luego cambie el "estilo" (en el inspector de atributos)) de simple a agrupado.


Puedes hacer esto usando storyboard / XIB también

  1. Ir al guión gráfico -> Seleccione su viewController -> Seleccione su tabla
  2. Seleccione la propiedad "Estilo" en el constructor de interfaz
  3. Seleccione el "Agrupado"
  4. Hecho

Puedes hacer lo siguiente:

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

Swift 3:

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


Puedes usar:

(instancetype)init { return [[YourSubclassOfTableView alloc] initWithStyle:UITableViewStyleGrouped]; }


Si entiendo lo que quieres decir, tienes que inicializar tu controlador con ese estilo. Algo como:

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


Si hereda UITableViewController, puede volver a iniciar tableView.

C objetivo:

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

Swift 4:

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


Si tiene una TableView para más tablas, y una de estas tablas está agrupada y la otra es simple, entonces puede simular el estilo simple con la función de UITableViewDelegate:

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


También puede hacer esto si desea usarlo en una subclase que ya haya creado en un archivo rápido distinto (probablemente no sea 100% correcto pero funcione)

override init(style: UITableViewStyle) { super.init(style: style) UITableViewStyle.Grouped } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") }

Ahora en tu appdelegate.swift puedes llamar:

let settingsController = SettingsViewController(style: .Grouped)


También puede tratar de hacer que el color de la línea del separador sea claro, lo que podría dar el efecto de estilo agrupado:

[myTVContoller.tableView setSeparatorColor:[UIColor clearColor]];


Swift 2.1:

let myTableViewController = UITableViewController(style: UITableViewStyle.Grouped)


Swift 4

Usando TableView normal

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

Uso de TPKeyboardAvoidingTableView

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


self.tableView.style = UITableViewStyleGrouped

EDITAR:

Había asumido que esto era una propiedad de lectura / escritura. En ese caso, puede seguir los consejos de Dimitris y establecer el estilo al instanciar el controlador, o (si usa un XIB), puede configurarlo a través de IB.