2011-04-28 3 views
0

J'essaie de mettre un UIButton à l'intérieur d'un UITableViewCell.Mettez un UIButton dans un UITableView

Le UITableView a également des cellules contenant UILabels et les cellules ont des arrière-plans de gradient qui y sont attirés. Le problème que je vois est que mon UIButton est juste une cellule noire pleine sans affichage de texte, et changer les propriétés de couleur et de couleur de fond ne semble rien faire.

Voici le code que j'utilise pour créer le bouton:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSLog(@"InAppViewController, doing this - width= %f", self.wdth); 
    static NSString *ProductTableIdentifier = @"ProductTableIdentifier"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ProductTableIdentifier]; 
    if (cell == nil) 
    { 
     if (self.wdth >= 700) { 
      CGRect cellFrame = CGRectMake(0, 0, (self.wdth - 100), 40); 
      cell = [[[UITableViewCell alloc] initWithFrame:cellFrame reuseIdentifier: ProductTableIdentifier] autorelease]; 

      // Set up some labels... 

      CGRect seenValueRect = CGRectMake(self.wdth-320, 0, 100, 40); 
      UIButton *seenValue = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
      [seenValue setBackgroundColor:[UIColor greenColor]]; 
      seenValue.tag = kSeenValueTag; 
      seenValue.frame = seenValueRect; 
      [seenValue setTitle:@"I'm a clone" forState:UIControlStateNormal]; 

      [cell.contentView addSubview:seenValue]; 

      [seenValue release]; 

      // Continue setting up cell... 

Le lien pastebin contient le code à la fonction cellForRowAtIndexPath() entière (pour la UITableView en question).

http://pastebin.com/bpEyfruE

+0

Jetez un coup d'œil à la section * Customizing Cells * de la documentation iOS 'UITableView': http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/TableView_iPhone/ TableViewCells/TableViewCells.html –

Répondre

2

le problème est peut-être que vous libérant le UIButton innitialized avec la commodité initialiseur [UIButton buttonWithType:(UIButtonType)]. Essayez de retirer le [button release]

+1

bon oeil, c'est probablement ça –

0

Il ne peut même pas être que vous avez à faire [cell addSubview:seenValue]; au lieu de [cell.contentView addSubview:seenValue];

Vous pouvez également essayer de faire CGRectMake(110, 11, 185, 30) au lieu de CGRectMake(self.wdth-320, 0, 100, 40): Je l'utilise et il fonctionne bien, mais je ne fais pas savoir si c'est ce dont vous avez besoin

Questions connexes