Переключение на сегментированное управление FlatUIKit во время выполнения

У меня есть набор UISegmentedControl через раскадровку, и у меня есть выход для него. Во время выполнения у меня есть метод, который проверяет, меньше ли операционная система, чем iOS7, и если это так, мне нужно заменить UISegmentedControl на сегментированный элемент управления из FlatUIKit. Класс называется FUISegmentedControl и наследуется от UISegmentedControl. Вот метод инициализации:

+ (void)initialize {
    if (self == [FUISegmentedControl class]) {
        FUISegmentedControl *appearance = [self appearance];
        [appearance setCornerRadius:5.0f];
        [appearance setSelectedColor:[AppereanceConfiguration defaultTintColor]];
        [appearance setDeselectedColor:[UIColor whiteColor]];
        [appearance setDividerColor:[AppereanceConfiguration defaultTintColor]];
        [appearance setSelectedFont:[AppereanceConfiguration fontLightWithSize:16]];
        [appearance setDeselectedFont:[AppereanceConfiguration fontLightWithSize:16]];
        [appearance setSelectedFontColor:[UIColor whiteColor]];
        [appearance setDeselectedFontColor:[AppereanceConfiguration defaultTintColor]];
    }
}

Я не знаю, как заменить UISegmentedControl этим FUISegmentedControl во время выполнения.

Вот ссылка GitHub на FlatUIKit: FlatUIKit


person damjandd    schedule 22.11.2013    source источник
comment
Пожалуйста, перефразируйте свой вопрос. Попробуйте добавить больше деталей о том, чего вы пытаетесь достичь.   -  person Suhas    schedule 22.11.2013


Ответы (1)


Я решил эту проблему с помощью кода вместо раскадровки.

Я проверяю, если IOS ‹7 с этим:

#define IS_IOS7 ([[UIDevice currentDevice].systemVersion floatValue] >=7)

И я добавил свои элементы управления программно, а не с помощью раскадровки.

if (IS_IOS7)
{
    self.segmCntr = [[UISegmentedControl alloc] initWithFrame:CGRectMake(10, 10, 100, 30)];
}
else
{
    self.segmCntr = [[FUISegmentedControl alloc] initWithFrame:CGRectMake(10, 10, 100, 30)];
}
person Greg    schedule 22.11.2013
comment
Как мне запустить FUISegmentedControl? FUISegmentedControl *segmentedControl = [[FUISegmentedControl alloc]init]; ? - person damjandd; 22.11.2013
comment
какого типа должен быть self.segmCntr? - person damjandd; 22.11.2013
comment
Это должен быть тип UISegmentedControl. - person Greg; 22.11.2013
comment
Таким образом, я не могу редактировать свойства из FUISegmentedControl. - person damjandd; 22.11.2013
comment
Я не знаю, что именно ты хочешь сделать. Вы можете создать такой объект: if IOS7 UISegmentedControl *segmCntr = [[UISegmentedControl alloc] initWithFrame...] else FUISegmentedControl *flatSegmCntr = [[FUISegmentedControl alloc] initWithFrame...] и вы можете настроить тег для его идентификации на основе этого свойство. - person Greg; 22.11.2013