2012-01-09 17 views
0

私はデフォルトスタイル(白)のUISegmentControlを持っています。私はそれにテキストを追加したい。しかし、私が付けたいテキストは長いテキストです。UIsegmentコントロールの複数行テキスト

私はにセグメントの2行のテキストを表示する必要があります。しかし、私はセグメントの幅を上げる必要はありません画面の幅の制限&セグメントのため。

セグメントコントロールにプログラムでラベルを貼り付けようとしましたが、ラベルが表示されませんでした。 XIBを使用してセグメント制御にラベルを付けることはできますが。テキストの動的性質のために&セグメントコントロール、私はプログラムでセグメントのコントロールを描画する必要がありますそれにテキストを置く。

ガイダンスは高く評価されます。

答えて

0

こんにちは友人セグメントコントローラすでにサブビューとしてラベルを持っているので、このコードは

for (id segment in [segmentedControl subviews]) 
{ 
    for (id label in [segment subviews]) 
    { 
     if ([label isKindOfClass:[UILabel class]]) 
     { 
      //hear u add any of delegate function to increase the height and other label functionality in this 
      [label setTextAlignment:UITextAlignmentCenter]; 
      [label setFont:[UIFont boldSystemFontOfSize:12]]; 
//to adjust the label size manually with respect to text use below code 
    CGSize labelSize = CGSizeMake(100, 80); 
    CGSize theStringSize = [label.text sizeWithFont:label.font constrainedToSize:labelSize]; 
    CGRect frame = label.frame; 
    frame.size = theStringSize; 

     } 
    }   
} 

は良い一日に持っているセグメントコントロールに複数行のテキストを達成するために有用である

+2

警告:このコードはで壊すかもしれませんUISegmentedControlの文書化されていないプロパティを使用しているので、iOSの将来のバージョン – chrisben

+0

私はあなたの意見に同意していません。 iOSのカスタムUIにvariosコントロールの文書化されていないプロパティを使用するアプリのほとんど(50〜60%) –

+0

私が開発したアプリでは、そのようなことをしないようにしています。ドキュメント化されていないプロパティを使用すると、新しいバージョンのiOSで動作するとアプリケーションの動作が停止するか、奇妙な動作が発生する可能性があります。 – chrisben

関連する問題