UISegmentedControl中有多行文本

时间:2012-12-18 10:20:04

标签: ios

有一种简单的方法,例如我的UISegmentedControl中的每个项目, 有多行文字?

感谢。

PS。我还检查过那里没有简单的方法来改变UISegmentedControl的高度? 在代码中说?将风格改为" Bar"不适合我,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%"];

            }
        }           
    }

1 个答案:

答案 0 :(得分:-1)

1.您可以尝试以下方法。

  • 创建多线UILabel
  • 用N行文字填充标签
  • 将标签转换为UIImage
  • 将图片设置为细分内容

就像This Answer中的一个完成一样:    UISegmentedControl text with multiple lines?

2.您可以使用相同的框架在分段控制的后面取ImageView并根据SelectedSegmentedIndex更改图像,如下所示。

但请不要忘记在{+ 1}}将Alpha设置为SegmentedControl在ViewDidLoad。

0.05.

enter image description here

enter image description here

enter image description here

编码就像这样。

segment_Control.alpha=0.05;

3.也可以试试这个:

- (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"];

        }
}

Source : Multiline Text On UIsegment Control