Reposition text label detail in a cell?

I have an Iphone application in which I combine two arrays and display them in the same table. The problem here is that I was unable to reposition the detailed text label in the cell. Here is my `

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

`can someone help me achieve this?

+6
source share
1 answer

Subclass UITableViewCell, save this cell style as UITableViewCellStyleSubtitle and override layoutSubviews in this subclass. Then you can change the detailTextLabel frame (just make sure you call the super implementation of layoutSubviews in your method).

+7
source

Source: https://habr.com/ru/post/920099/


All Articles