1

たとえば、UISegmentedControlの各アイテムに複数行のテキストを含めるような簡単な方法はありますか?

ありがとう。

ps。UISegmentedControlの高さを変更する簡単な方法がないことも確認しましたか?コードで言いますか?スタイルを「バー」に変更するのは私にsetFrameは合わず、私の場合もうまくいかないようです... :((

pps。これは私がSibaの推奨に従って試したアプローチですが、まだいくつかの問題があります。

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

                [label2 setText:@"text \n 10%"];

            }
        }           
    }
4

1 に答える 1

0

1.以下を試すことができます。

  • 複数行のUILabelを作成する
  • ラベルにN行のテキストを入力します
  • ラベルをUIImageに変換します
  • 画像をセグメントコンテンツとして設定する

この回答で行われた1つのように: 複数行のUISegmentedControlテキスト?

2.ImageView同じフレームでセグメント化されたコントロールの後ろに移動し、SelectedSegmentedIndexに従って画像を変更できます。

Alphaただし、AtViewDidLoadに設定SegmentedControlすることを忘れないでください。0.05.

segment_Control.alpha=0.05;

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

コーディングはこんな感じになります。

- (IBAction)segmented_Changed:(id)sender {

    if (segmented_control.selectedSegmentIndex==0) {

        segment_image.image=[UIImage imageNamed:@"tab_Act1.png"];

    }else
        if (segmented_control.selectedSegmentIndex==2) {
            segment_image.image=[UIImage imageNamed:@"tab_Act3.png"];

        }
        else if (segmented_control.selectedSegmentIndex==1) {

            segment_image.image=[UIImage imageNamed:@"tab_Act2.png"];

        }
}

3.これも試すことができます:

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; 

        }
    }           
}

出典: UIsegmentコントロールの複数行テキスト

于 2012-12-18T10:42:24.653 に答える