Come modificare il colore del bordo di un raggruppate UITableView
-
25-09-2019 - |
Domanda
Si tratta iPhoneOS-sdk-3.2
Ho difficoltà cambiando il colore del bordo di un UITableView raggruppati. Posso cambiare il colore di sfondo della cella, colore di separazione, il colore del testo, ora abbastanza facilmente, e gli angoli arrotondati agganciare correttamente, anche se ha sottolineato con qualunque colori che ho scelto. Tuttavia, il bordo che circonda rimane esasperante grigio nonostante i molti tentativi diversi.
Ho letto tutti i post correlati posso trovare tramite Google, per non parlare di StackOverflow. Ho visto soluzione valle di lacrime eroico Mike Akers' per UITableViewCell clipping - questo problema è risolto per iPhoneOS 3.0 e non mi ha aiutato con il bordo.
Ho provato sia una soluzione di programmazione e xib-based e sia fornire gli stessi risultati.
Voglio condividere la versione programmatico di seguito:
Ho un UIViewController sottoclasse piuttosto che un UITableViewController sottoclasse di agire come delegato UITableView - Ho scelto questo percorso come sto codifica su iPad e UITableViewController prende riferito su tutto lo schermo. Metodo loadview della mia UIViewController sottoclasse:
- (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];
}
Soluzione
Ho trovato una soluzione. Questo comportamento sembra essere iPhoneOS 3.2 specifica come Apple ha aggiunto una proprietà backgroundView per UITableView in iPhoneOS 3.2.
ho provato [myTableView.backgroundView removeFromSuperView] e UITableView appena sostituito con un altro.
Al contrario, la mia soluzione era quella di aggiungere:
myTableView.backgroundView.hidden = YES;