分段控制集在每个段中归因于标题

时间:2015-06-02 05:41:59

标签: ios uisegmentedcontrol

实际上我有4段的分段控件。我需要在每个段中添加属性文本,如“Notification(2)”。这里(2)将采用不同的颜色,通知将采用不同的颜色。

我搜索了一些第三方库,但它对我不起作用

谢谢&此致

1 个答案:

答案 0 :(得分:1)

我们用于标签或按钮时使用属性文本是有限制的。但您可以尝试以下方法来实现您的要求。

-(void)SetSegmentValue:(NSString *)value forSegment:(int)index RangeOfBlueColor:(NSRange)bluecolorRange{

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:value];
NSMutableParagraphStyle *paragrahStyle = [[NSMutableParagraphStyle defaultParagraphStyle]mutableCopy];
[paragrahStyle setAlignment:NSTextAlignmentCenter];
[paragrahStyle setLineBreakMode:NSLineBreakByWordWrapping];

[attributedString addAttribute:NSParagraphStyleAttributeName value:paragrahStyle range:NSMakeRange(0, value.length)];
[attributedString addAttribute:NSForegroundColorAttributeName
                         value:[UIColor blackColor]
                         range:NSMakeRange(0, value.length)];
[attributedString addAttribute:NSForegroundColorAttributeName
                         value:[UIColor blueColor]
                         range:bluecolorRange];
[attributedString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:13.0] range:NSMakeRange(0, value.length)];

int i =0 ;
for (UIView *v in [[[segment subviews] objectAtIndex:0] subviews]) {
    if ([v isKindOfClass:[UILabel class]]&& i== index) {
        UILabel *label=(UILabel *)v ;
        [label setAttributedText:attributedString];
        i++;
        }
    }


}

注意:您必须修改部分代码,因为它只是解决问题的建议