1

私の iPad アプリではUILabel、Web サービスからフェッチされるテキストのスクロールを表示しています。同じテキスト サイズを動的に設定する必要があります。私の問題はUILabel、Web サービスから取得するテキストの長さに応じて、の幅を設定する必要があることです。

可能な解決策のすべてまたはほとんど試しまし 、無駄でした。

NSStringサーバーから取得した文字列を保存している場所が 300 文字の場合、次のコードを使用して幅として 2270 を表示します。

CGFloat width =  [ScrollingLabel.text sizeWithFont:ScrollingLabel.font].width;

ScrollingLabel.frame = CGRectMake(1024,720,width,45);

しかし、アプリで文字列の半分を取得していません。

4

2 に答える 2

2

コードで得られた幅に2を掛けるだけで、問題の解決策を得ることができました。

CGFloat width =  [ScrollingLabel.text sizeWithFont:ScrollingLabel.font].width;

ScrollingLabel.frame = CGRectMake(1024,720,width,45);
于 2012-05-22T04:47:06.963 に答える
1

これを達成するための実際の最良の方法は、UILabel のカテゴリを作成し、メソッドを追加することです。

- (CGFloat)expectedWidth
{
    CGSize size = [self.text sizeWithFont:self.font
                        constrainedToSize:CGSizeMake(FLT_MAX,self.bounds.size.height)
                            lineBreakMode:self.lineBreakMode];

     return size.width;
}
于 2012-05-18T09:43:12.057 に答える