UISegmentedControl tintcolor не может работать после установки backgroundImage

Когда мы не изменяем фоновое изображение UISegmentedControl, установка цвета оттенка может работать отлично. Но как только мы изменим фоновое изображение, независимо от того, какой цвет мы установили для цвета оттенка, выбранный цвет UIsegmentControl будет отображаться серым цветом. решить эту проблему без настройки нового класса?


person LinSeanYu    schedule 08.12.2016    source источник
comment
Пожалуйста, поделитесь своим экраном пользовательского интерфейса после установки фонового изображения, чтобы мы могли больше прояснить вопрос   -  person SM18    schedule 08.12.2016
comment
Большое спасибо за ваш совет.   -  person LinSeanYu    schedule 08.12.2016


Ответы (1)


Использовать этот:

#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UISegmentedControl *segmentedControl;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

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

    [self.segmentedControl setBackgroundImage:[UIImage imageNamed:@"green.png"]
                                     forState:UIControlStateSelected
                                   barMetrics:UIBarMetricsDefault];
    self.segmentedControl.tintColor = [UIColor orangeColor];

}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end

Выход:

введите здесь описание изображения

Ссылка на GitHub:

https://github.com/k-sathireddy/SegmentedControlBackgroundWithTint

person KSR    schedule 08.12.2016