0

テーブル ビュー セルにラベルがあり、ラベルのテキストに応じてサイズを変更する必要があります。Potratit モードでは正常に動作しますが、Landscape モードに移行すると、テキストは表のセルの長さに表示されません。当分の間、ラベルを動的に作成し、テーブルをリロードしてデバイスの現在の向きに応じて幅を調整しました。

ラベルを動的に作成し、contentView にも追加しました。コードは次のとおりです。

UILabel *lblSize = [[UILabel alloc] initWithFrame:CGRectMake(nameLbl.frame.origin.x + nameLbl.frame.size.width , 0, 580, 60)];
lblSize.backgroundColor = [UIColor clearColor];
lblSize.font = [UIFont fontWithName:@"TrebuchetMS" size:18];
lblSize.textColor = [UIColor blackColor];
lblSize.minimumFontSize = 10;
lblSize.tag = 3;
[cell.contentView addSubview:lblSize];

ポートレートモードでコードを実行するとどうなるかは以下のとおりです

|ページ1 | いくつかのテキスト。いくつかのテキスト。いくつかのテキスト。いくつかのテキスト。いくつかのテキスト.... |

横向きモードで何が起こるかは以下のとおりです

|ページ 1 | いくつかのテキスト。いくつかのテキスト。.... |

私が使用したアプローチを使用したくありません。問題を解決するために使用できる他のより適切なものはありますか。いくつかの解決策を提案してください。私は現在iPadで作業しており、同じソリューションが必要です。

4

2 に答える 2

0

この次の条件でフレームを設定するだけです

    if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation))
    {
         // code for landscape orientation      
    }

また

    if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation))
    {
         // code for Portrait orientation       
    }
于 2012-11-29T06:57:12.477 に答える
0

あなたのcellForRowAtIndexPath

CGFloat maxHeightForLabel=1000.0;
CGSize size=[label.text sizeWithFont:label.font
       constrainedToSize:CGSizeMake(label.frame.size.width, maxHeightForLabel)];
CGRect frame=label.frame;
frame.size=size;
label.frame=frame;

[yourTableView reloadData];方向転換を呼びかける。

于 2012-11-29T07:27:44.393 に答える