0

「詳細」テキストを表示するために展開している UITable があります。私が抱えている問題は、テキストがさまざまなサイズになる可能性があることです。つまり、indexpath.section1 の高さが 1200 であるのに対し、indexpath.section2 の高さは 300 です。

私が持っているコードは、セルを再利用するまでは正常に機能し、ラベル フレームのサイズは新しいラベルに合わせて調整されません。したがって、セルのサイズは正しく設定されていますが、そのセル内のラベルには元のサイズのフレームがまだ残っているため、テキストが小さすぎるとテキストが途切れて空白が多くなり、大きすぎるとスクロールしない限りテキストが表示されません。フィールドの真ん中。

私は何を間違っていますか?? 何か助けてください??

これは私のコードです:-

            static NSUInteger const k1 = 1;

            // Declare references to the subviews which will display the data.
            UILabel *lbl1 = nil;

            static NSString *kCellID = @"CellID";

            UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellID];
            if (cell == nil) {
                cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCellID];

                if ((indexPath.section == 8) || (indexPath.section == 9) || (indexPath.section == 10) || (indexPath.section == 11) || (indexPath.section == 12) || (indexPath.section == 13) || (indexPath.section == 14)|| (indexPath.section == 15) || (indexPath.section == 16))
                {
                    lbl1 = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 290, 200)];
                }

                else if ((indexPath.section == 4) || (indexPath.section == 5))
                {
                    lbl1 = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 290, 1200)];
                }
                lbl1.font = [UIFont fontWithName:@"Trebuchet MS" size:12.0f];
                lbl1.tag = k1;
                lbl1.textColor = [UIColor blackColor];
                lbl1.backgroundColor = [UIColor clearColor];
                lbl1.highlightedTextColor = [UIColor whiteColor];
                lbl1.opaque = NO;
                lbl1.adjustsFontSizeToFitWidth = TRUE;
                lbl1.numberOfLines = 0;

                lbl1.lineBreakMode = UILineBreakModeWordWrap;
                [cell.contentView addSubview:lbl1];

            } else {
                lbl1 = (UILabel *)[cell.contentView viewWithTag:k1];
            }

            cell.accessoryView.tag = indexPath.row;

            lbl1.text = [NSString stringWithFormat:@"%@", cellValue];

            return cell;
        }
    }
}
4

1 に答える 1

0

ラベルに自動サイズ変更マスクを設定する必要があります。これにより、スーパービューのサイズが変更されたときにサイズが変更されます。適切な設定は次のとおりです。

lbl1.autoresizingMask = UIViewAutoresizingFlexibleHeight;
于 2012-11-11T07:37:00.350 に答える