ios - example - UITableView, Separator color ¿dónde establecer?
uitableview swift 4 (6)
He agregado un UITableView
en IB y configuré el "delegado" y el "origen de datos" y todo está funcionando bien. Lo que quería hacer a continuación era cambiar el color del separador, pero la única forma que podía encontrar para hacerlo era agregar el método a una de las devoluciones de llamadas de los delegados, ¿hay un lugar mejor en el que debería poner esto?
No tengo esto por el momento, pero estaba pensando que tal vez tengo que agregar un "iVar" desde mi controlador para poder vincularlo con UITableView
en IB y luego establecer el color del separador en viewDidload
.
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView setSeparatorColor:[UIColor blackColor]];
return 65;
}
Ahora deberías poder hacerlo directamente en el IB.
No estoy seguro, si esto estaba disponible cuando la pregunta fue publicada originalmente.
Pruebe el aspecto + (instancetype) de UITableView:
C objetivo:
[[UITableView appearance] setSeparatorColor:[UIColor blackColor]]; // set your desired colour in place of "[UIColor blackColor]"
Swift 3.0:
UITableView.appearance().separatorColor = UIColor.black // set your desired colour in place of "UIColor.black"
Nota: El cambio se reflejará en todas las tablas utilizadas en la aplicación.
Si solo desea establecer el mismo color para cada separador y es opaco, puede usar:
self.tableView.separatorColor = UIColor.redColor()
Si desea usar diferentes colores para los separadores o borrar el color del separador o usar un color con alfa.
TENGA CUIDADO: debe saber que hay una vista de fondo en el separador que tiene un color predeterminado.
Para cambiarlo puedes usar estas funciones:
func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
if(view.isKindOfClass(UITableViewHeaderFooterView)){
var headerView = view as! UITableViewHeaderFooterView;
headerView.backgroundView?.backgroundColor = myColor
//Other colors you can change here
// headerView.backgroundColor = myColor
// headerView.contentView.backgroundColor = myColor
}
}
func tableView(tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) {
if(view.isKindOfClass(UITableViewHeaderFooterView)){
var footerView = view as! UITableViewHeaderFooterView;
footerView.backgroundView?.backgroundColor = myColor
//Other colors you can change here
//footerView.backgroundColor = myColor
//footerView.contentView.backgroundColor = myColor
}
}
¡Espero eso ayude!
Versión Swift :
override func viewDidLoad() {
super.viewDidLoad()
// Assign your color to this property, for example here we assign the red color.
tableView.separatorColor = UIColor.redColor()
}
- (void)viewDidLoad
{
[self.tableView setSeparatorColor:[UIColor myColor]];
}
Espero que eso ayude, te necesitarás a ti self.
para acceder a ella, recuerda.