UISegmentedControl的边框颜色是什么?

3

我在iOS7中改变分段控件的边框颜色时遇到了问题。我在stackoverflow上找到了以下建议:

    [[UISegmentedControl appearance] setTitleTextAttributes:@{
                                                             UITextAttributeTextColor: [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0],
                                                             UITextAttributeTextShadowColor: [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0],
                                                             UITextAttributeFont: [UIFont fontWithName:@"Arial-Bold" size:0.0],
                                                             NSForegroundColorAttributeName : [UIColor redColor],

                                                             } forState:UIControlStateSelected];

    [self.segmentedControl setTitleTextAttributes:@{
                                                    UITextAttributeTextColor: [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0],
                                                    UITextAttributeTextShadowColor: [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0],
                                                    UITextAttributeFont: [UIFont fontWithName:@"Arial-Bold" size:0.0],
                                                    NSForegroundColorAttributeName : [UIColor redColor],

                                                    } forState:UIControlStateNormal];

但无论哪种情况,我的边框仍然是蓝色的。我似乎无法通过settitleTextAttributes更改字体阴影、边框颜色或其他任何内容。

我该如何调整边框颜色?

2个回答

2
[segmentControlObj setTintColor:[UIColor redColor]];

1

我在这方面挣扎了很久,所以我采用了一个变通的方法。我最终只是创建了一个新的UILabel,并将其作为分段控制器中每个项目的子视图添加。

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
    NSArray * segments = @[@"Crop",@"Nutrient",@"Product Group"];

    [self.segmentedControl setBackgroundImage:[UIImage imageNamed:@"background-yellowgradient.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

    [self.segmentedControl setSegmentedControlStyle:UISegmentedControlStyleBar];
    for (int i=0; i<[self.segmentedControl.subviews count]; i++)
    {

        [[self.segmentedControl.subviews objectAtIndex:i] setTintColor:[UIColor clearColor]];
        UILabel *l = [[UILabel alloc] init];
        l.text = [segments objectAtIndex:i];
        l.textColor = [UIColor whiteColor];
        l.textAlignment = NSTextAlignmentCenter;
        l.adjustsFontSizeToFitWidth = NO;
        l.font = [UIFont systemFontOfSize:12];


        CGRect  f = [[self.segmentedControl.subviews objectAtIndex:0] frame];
        f.size.width = self.segmentedControl.frame.size.width/3;
        f.size.height = self.segmentedControl.frame.size.height;
        f.origin.x = 0;
        f.origin.y = 0;

        l.frame = f;

        [[[self.segmentedControl subviews] objectAtIndex:i] addSubview:l];

    }
}
else{
    // if it's not IOS7, then do what i was doing before for ios6.1 and below
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接