Tengo una UITableViewController
subclase con secciones. Las secciones se muestran con el estilo predeterminado (sin esquinas redondeadas). ¿Cómo puedo configurar el estilo TableView para agrupar 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.
ios
objective-c
uitableview
cocoa-touch
rey nevan
fuente
fuente
Respuestas:
Si entiendo lo que quieres decir, tienes que inicializar tu controlador con ese estilo. Algo como:
myTVContoller = [[UITableViewController alloc] initWithStyle:UITableViewStyleGrouped];
fuente
Puede hacer lo siguiente:
UITableView *myTable = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
Swift 3:
let tableView = UITableView.init(frame: CGRect.zero, style: .grouped)
fuente
UITableView
, la respuesta aceptada es aUITableViewController
.CGRectZero
junto con su estilo de vista de tabla y luego agregue sus restricciones y obtendrá el estilo correcto junto con sus restricciones.Te doy mi solución, estoy trabajando en "modo XIB", aquí el código de una subclase de un UITableViewController:
-(id)initWithCoder:(NSCoder *)aDecoder { self = [super initWithStyle:UITableViewStyleGrouped]; return self; }
fuente
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; }
fuente
Si está heredando UITableViewController, puede simplemente iniciar tableView nuevamente.
C objetivo:
self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
Rápido:
self.tableView = UITableView(frame: CGRect.zero, style: .grouped)
fuente
Establecer eso no es tan difícil como se menciona en la pregunta. De hecho, es bastante simple. Prueba esto en el guión gráfico.
fuente
Rápido 4
Usando TableView normal
Uso de TPKeyboardAvoidingTableView
fuente
Swift 4+:
let myTableViewController = UITableViewController(style: .grouped)
fuente
Para configurar el estilo agrupado en la propia interfaz de usuario: -Seleccione TableView y luego cambie el "estilo" (en el inspector de atributos)) de simple a Agrupado.
fuente
También puede hacer esto si desea usarlo en una subclase que ya ha creado en un archivo rápido separado (probablemente no sea 100% correcto pero funciona)
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 a:
fuente
Puedes hacer esto usando storyboard / XIB también
fuente
Si tiene un TableView para más tablas, y una de estas tablas está agrupada y la otra es simple, puede simular el estilo simple con la función de UITableViewDelegate:
override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return CGFloat.min }
fuente
rápido 4
si no desea utilizar el guión gráfico, esto podría ser de ayuda.
puede agregar vista de tabla y establecer propiedades en un cierre:
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 }()
luego agregue una subvista y establezca restricciones.
fuente
También puede intentar aclarar el color de la línea de separación, lo que podría dar el efecto de estilo agrupado:
[myTVContoller.tableView setSeparatorColor:[UIColor clearColor]];
fuente
Puedes usar:
(instancetype)init { return [[YourSubclassOfTableView alloc] initWithStyle:UITableViewStyleGrouped]; }
fuente
self.tableView.style = UITableViewStyleGrouped
EDITAR:
Había asumido que se trataba de una propiedad de lectura / escritura. En ese caso, puede seguir los consejos de Dimitris y establecer el estilo cuando crea una instancia del controlador, o (si está usando un XIB), puede configurarlo a través de IB.
fuente