Ios UITableViewCell交换中的UILabel文本值

Ios UITableViewCell交换中的UILabel文本值,ios,objective-c,uitableview,Ios,Objective C,Uitableview,UILabelUITableViewCell中的文本值在每次加载时都会被交换。因为我的单元格高度为140cell.TextLabel.Text无法设置frame并使其显示在中间。但我需要在单元格的开头显示TitleText。所以,我使用UILabel来显示我需要的内容。但是每次当我加载单元格时,它都会为那些单元格显示错误的标题。但是当我记录数组时,它会正确记录,如果我检查cell.textlab.text,它会正确显示。但在UILabel中不会显示。很困惑。无法跟踪我出错的地方。提前谢谢。 下面

UILabel
UITableViewCell中的文本值在每次加载时都会被交换。因为我的
单元格高度为140
cell.TextLabel.Text
无法设置
frame
并使其显示在中间。但我需要在单元格的开头显示TitleText。所以,我使用
UILabel
来显示我需要的内容。但是每次当我加载单元格时,它都会为那些单元格显示错误的标题。但是当我记录数组时,它会正确记录,如果我检查
cell.textlab.text
,它会正确显示。但在
UILabel
中不会显示。很困惑。无法跟踪我出错的地方。提前谢谢。 下面是我的代码

`


`

我不知道这是否是您的输入错误,但是
cell.textlab.text
是一个NSString,所以您不能将frame设置为该字符串,但是
cell.textlab.frame
应该可以。您使用的方法中的另一个问题是
UILabel*Title
在if语句外部声明,然后在if语句结束后操作,如果您成功地将单元格出列,则它将为
nil
。由于objective-C对您很好,当您将消息传递给
nil
时,它不会抱怨。如果要使用此批准,还需要在If语句中将标签添加到单元格中,可能带有标记,然后在要设置框架时获得相同的标签。这与您的
seaImage
相同,您不应该每次提供单元格时都添加一个新的单元格。

我不知道这是否是您的输入错误,但是
cell.TextLabel.text
是一个NSString,因此您不能将frame设置为该字符串,但是
cell.TextLabel.frame
应该可以工作。您使用的方法中的另一个问题是
UILabel*Title
在if语句外部声明,然后在if语句结束后操作,如果您成功地将单元格出列,则它将为
nil
。由于objective-C对您很好,当您将消息传递给
nil
时,它不会抱怨。如果要使用此批准,还需要在If语句中将标签添加到单元格中,可能带有标记,然后在要设置框架时获得相同的标签。这与您的
seaImage
相同,您不应该在每次提供单元格时添加新的单元格。

为每个子视图添加子视图标签和图像
单元格==nil
块集标记中的单元格。通过标记访问块外部的子视图。我希望这对你有帮助

if (cell == nil) {
    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
  UILabel *Title = [[UILabel alloc]init ];
           Title.tag = 1000;
           Title.frame =CGRectMake(20, 18, 152, 23);
          [Title sizeToFit];
  [cell.contentView addSubview:Title];

 UIImageView *seaImage = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"PacificOcean.png" ]];
          seaImage.frame = CGRectMake(20, 60, 280, 80);
[cell.contentView addSubview:seaImage];
}
  NSMutableArray *contentArray = [sectionDict valueForKey:[array objectAtIndex:indexPath.section]];
  UILabel *Title = (UILabel *)[cell.contentView viewWithTag:1000];
  Title.text = [contentArray objectAtIndex:indexPath.row];
  return cell;

更改代码如下..

为每个子视图添加子视图标签图像
cell==nil
块集标记中的单元格。通过标记访问块外部的子视图。我希望这对你有帮助

if (cell == nil) {
    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
  UILabel *Title = [[UILabel alloc]init ];
           Title.tag = 1000;
           Title.frame =CGRectMake(20, 18, 152, 23);
          [Title sizeToFit];
  [cell.contentView addSubview:Title];

 UIImageView *seaImage = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"PacificOcean.png" ]];
          seaImage.frame = CGRectMake(20, 60, 280, 80);
[cell.contentView addSubview:seaImage];
}
  NSMutableArray *contentArray = [sectionDict valueForKey:[array objectAtIndex:indexPath.section]];
  UILabel *Title = (UILabel *)[cell.contentView viewWithTag:1000];
  Title.text = [contentArray objectAtIndex:indexPath.row];
  return cell;

像这样更改代码。

像这样使用代码

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UILabel *Title;
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
Title = [[UILabel alloc]init ];
Title.frame =CGRectMake(20, 18, 152, 23);
[Title sizeToFit];
[cell.contentView addSubview: Title];

UIImageView *seaImage = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"PacificOcean.png" ]];
seaImage.frame = CGRectMake(20, 60, 280, 80);
[cell.contentView addSubview: seaImage];
}
NSMutableArray *contentArray = [sectionDict valueForKey:[array objectAtIndex:indexPath.section]];
NSLog(@"content %@",contentArray);
Title.text = [contentArray objectAtIndex:indexPath.row];

return cell;
}

像这样使用你的代码

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UILabel *Title;
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
Title = [[UILabel alloc]init ];
Title.frame =CGRectMake(20, 18, 152, 23);
[Title sizeToFit];
[cell.contentView addSubview: Title];

UIImageView *seaImage = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"PacificOcean.png" ]];
seaImage.frame = CGRectMake(20, 60, 280, 80);
[cell.contentView addSubview: seaImage];
}
NSMutableArray *contentArray = [sectionDict valueForKey:[array objectAtIndex:indexPath.section]];
NSLog(@"content %@",contentArray);
Title.text = [contentArray objectAtIndex:indexPath.row];

return cell;
}


TableCelluse NSLog(@“%@,[contentArray objectAtIndex:indexPath.row])中缺少标题标签。正在记录该数组值。但TableCelluse NSLog(@“%@,[contentArray objectAtIndex:indexPath.row])中缺少celltitle标签(但在CellUse NSLog中不可用)正在记录数组值,但在中不可用cell@TamilKing-对不起,我找不到you@user1980105@现在您了解了如何在中添加子视图cell@TamilKing,查看我的answer@GreyCode:试试这段代码,我希望它能完美工作。否则,请说明出现了什么错误。@TamilKing-标题标签未显示。可能是因为框架问题。如果我为第二个标题设置了框架,它将加载。哇,它工作正常。谢谢man@TamilKing-对不起,我找不到you@user1980105@现在您了解了如何在中添加子视图cell@TamilKing,检查我的answer@GreyCode:试试这段代码,我希望它能完美工作。否则,请说明您遇到了什么错误。@TamilKing-标题标签未显示。可能是因为框架问题。如果我为第二个标题设置框架,它将加载。哇,它工作正常。感谢mansorry,我错误地将其称为cell.textlab.text for frame。仅在cell.textlab.frame中,它无法按框架设置位置。我不明白。您无法执行“cellTextLabel.frame=CGRectMake(x,y,w,h)”。你们收到错误信息了吗?抱歉。在单元格中设置默认文本标签的框架不起作用。据我所知。请自己试一试,让我知道它是否有效。
textLabel框架
中的ThanksY位置不起作用。总是在单元格中间。很抱歉,我错误地提到了cell.textLabel.text作为frame。仅在cell.textLabel.frame中,它无法按帧设置位置。我不明白。您无法执行“cellTextLabel.frame=CGRectMake(x,y,w,h)”。你们收到错误信息了吗?抱歉。在单元格中设置默认文本标签的框架不起作用。据我所知。请自己试一试,并让我知道它是否有效。
文本标签框中的ThanksY位置不起作用。始终在单元格中间。