有一种简单的方法,例如我的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%"];
}
}
}
答案 0 :(得分:-1)
1.您可以尝试以下方法。
就像This Answer中的一个完成一样: UISegmentedControl text with multiple lines?
2.您可以使用相同的框架在分段控制的后面取ImageView
并根据SelectedSegmentedIndex更改图像,如下所示。
但请不要忘记在{+ 1}}将Alpha
设置为SegmentedControl
在ViewDidLoad。
0.05.
编码就像这样。
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"];
}
}