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];
}
È stato utile?

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;

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top