Como mudar a cor da fronteira de um uabableview agrupado
-
25-09-2019 - |
Pergunta
Isso diz respeito ao iPhoneOS-SDK-3.2
Estou tendo dificuldade em alterar a cor da borda de uma visão de uitável agrupada. Eu posso alterar a cor do fundo da célula, a cor do separador, a cor do texto, com bastante facilidade agora e o clipe de cantos arredondados corretamente, mesmo quando destacado com as cores que eu escolhi. No entanto, a fronteira circundante permanece irritantemente cinza, apesar de muitas tentativas diferentes.
Eu li todas as postagens relacionadas que posso encontrar via Google, muito menos StackOverflow. Eu vi a solução heróica pita de Mike Akers para o recorte UitableViewCell - esse problema é resolvido para o iPhoneos 3.0 e não me ajudou na fronteira.
Eu tentei uma solução programática e baseada em XIB e ambos forneço os mesmos resultados.
Vou compartilhar a versão programática abaixo:
Eu tenho uma subclasse UIViewController em vez de uma subclasse uabableViewController para atuar como um delegado de view - escolhi essa rota enquanto estou codificando no iPad e o UitableViewController supostamente toma conta de toda a tela. Método loadView da minha subclasse UIViewController:
- (void) loadView {
self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
[self.view release];
self.view.backgroundColor = [UIColor blackColor];
// add and configure UITableView
CGRect tableViewRect = CGRectMake(0., 0., 256., 768.);
myTableView = [[UITableView alloc] initWithFrame:tableViewRect style:UITableViewStyleGrouped];
// set the tableview delegate to this object and the datasource to the datasource which has already been set
myTableView.delegate = self;
myTableView.dataSource = self;
myTableView.sectionIndexMinimumDisplayRowCount = 1;
myTableView.backgroundColor = [UIColor clearColor];
myTableView.separatorColor = [UIColor whiteColor];
myTableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
myTableView.opaque = NO;
// add the table view to our background view
[self.view addSubview:myTableView];
[myTableView release];
}
Solução
Eu encontrei uma solução. Esse comportamento parece ser o iPhoneos 3.2 específico, pois a Apple adicionou uma propriedade BackgroundView para o UitableView no iPhoneos 3.2.
Eu tentei [MyTableView.backgroundView RemoffromsuperView] e o UitableView acabou de substituí -lo por outro.
Em vez disso, minha solução foi adicionar:
myTableView.backgroundView.hidden = YES;