【问题标题】:border color of uisegmentedcontroluisegmentedcontrol的边框颜色
【发布时间】:2014-04-10 21:18:03
【问题描述】:

我在 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 更改字体阴影、边框颜色或其他任何内容。

如何调整边框颜色?

【问题讨论】:

    标签: ios7 uisegmentedcontrol


    【解决方案1】:
    [segmentControlObj setTintColor:[UIColor redColor]];
    

    【讨论】:

      【解决方案2】:

      好吧,我为此苦苦挣扎。所以我做了一个工作。我最终只是创建了一个新的 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
      }
      

      【讨论】:

        猜你喜欢
        • 2016-04-17
        • 1970-01-01
        • 2013-10-11
        • 2010-12-31
        • 1970-01-01
        • 2010-12-24
        • 1970-01-01
        • 2011-07-14
        • 1970-01-01
        相关资源
        最近更新 更多