2012-07-10 23 views
6

私は2つの配列を組み合わせて同じテーブルに表示しているIphoneアプリケーションを持っています。ここでの問題はcell.hereにある詳細テキストラベルの位置を変更できませんでした。私のコードスニペットはセル内のdetailtextlabelの位置を変更しますか?

- (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; 
} 

`これを達成するために誰も助けてくれますか?

答えて

7

UITableViewCellサブクラスを作成し、そのセルスタイルをUITableViewCellStyleSubtitleとし、そのサブクラスでlayoutSubviewsを上書きします。その後、detailTextLabelのフレームを変更することができます(メソッドでlayoutSubviewsというスーパーインプリメンテーションを呼び出してください)。

関連する問題