2012-07-10 15 views
6

Mam aplikację Iphone, w której łączę dwie tablice i wyświetlam w tej samej tabeli. Problem polega na tym, że nie udało mi się zmienić pozycji szczegółowego tekstu w komórce. W tym miejscu znajduje się fragment kodu "zmieniając położenie etykiety detailtext w komórce?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; 
     UIImageView* img = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"cell_with_arrow.png"]]; 
     [cell setBackgroundView:img]; 
     [img release];   
    } 
    if(newssarray==nil||[newssarray count]==0) 
    {    
    } 
    else 
    { 
     NSDictionary *dicttable=[newssarray objectAtIndex:indexPath.row]; 
     head=[dicttable objectForKey:@"news"]; 
     head1=[dicttable objectForKey:@"name"]; 
     NSString *sub=[dicttable objectForKey:@"created"]; 

     NSLog (@"%@",head); 

     [[cell viewWithTag:12] removeFromSuperview]; 
     [[cell viewWithTag:13] removeFromSuperview]; 
     [[cell viewWithTag:14] removeFromSuperview]; 

     UIButton *shopLabel=[self buttonWithText:head andFrame:CGRectMake(49, 12, 250,5)] ; 
     shopLabel.tag=12; 
     //shopLabel.autoresizingMask=UIViewAutoresizingFlexibleRightMargin; 
     [shopLabel addTarget:self action:@selector(openRestaurantsList) forControlEvents:UIControlEventTouchUpInside]; 

     UIButton *shopLabel1=[self buttonWithText:head1 andFrame:CGRectMake(49, 12, 250,5)] ; 
     shopLabel1.tag=14; 
     //shopLabel.autoresizingMask=UIViewAutoresizingFlexibleRightMargin; 
     [shopLabel1 addTarget:self action:@selector(openRestaurantsList) forControlEvents:UIControlEventTouchUpInside]; 
     cell.detailTextLabel.frame = CGRectMake(49, 30, 150,5); 
     if(indexPath.row < [newsseperatearray count]) 
     { 
      UIImage *cellImage = [UIImage imageNamed:@"news.png"]; 
      cell.imageView.image = cellImage; 
      //NSStringEncoding encoding=NSASCIIStringEncoding; 
      cell.imageView.frame=CGRectMake(0,0,48,48); 
      cell.imageView.bounds=CGRectMake(0,0,48,48); 
      [cell.imageView setClipsToBounds:NO]; 
      NSLog(@"%@",sub);      
      cell.detailTextLabel.text = sub; 
      cell.detailTextLabel.backgroundColor = [UIColor clearColor]; 
     } 
     else 
     { 
      UIImage *cellImage = [UIImage imageNamed:@"menu_icon.png"]; 
      cell.imageView.image = cellImage; 
      //NSStringEncoding encoding=NSASCIIStringEncoding; 
      cell.imageView.frame=CGRectMake(0,0,48,48); 
      cell.imageView.bounds=CGRectMake(0,0,48,48); 
      [cell.imageView setClipsToBounds:NO]; 
     } 
     [cell addSubview:shopLabel]; 
     [cell addSubview:shopLabel1]; 
     // [cell addSubview:shopLabel2]; 
    } 
    return cell; 
} 

"Czy ktoś może mi pomóc to osiągnąć?

Odpowiedz

7

Utwórz podklasę UITableViewCell, zachowaj ten styl komórki jako UITableViewCellStyleSubtitle i przesłonę layoutSubviews w tej podklasie. Następnie możesz zmienić ramkę detailTextLabel (po prostu upewnij się, że wywołasz superprefiks layoutSubviews w swojej metodzie).

Powiązane problemy