Могу ли я показать объект UISegmentedControl по вертикали? - PullRequest
19 голосов
/ 16 августа 2010

Есть ли кто-нибудь, кто может научить меня, как показывать объект UISegmentedControl в вертикальном направлении, а не в горизонтальном направлении?

Ответы [ 4 ]

25 голосов
/ 16 августа 2010

Вы всегда можете изменить преобразование в сегментированном элементе управления.

segmentedControl.transform = CGAffineTransformMakeRotation (M_PI / 2.0);

21 голосов
/ 07 июня 2011

+ 1 для ответа Бена, хотя поворот сегментированного элемента управления также вращает текст внутри. Не бойся! Нам просто нужно повернуть внутренние метки, вот так:

    NSArray *arr = [segmentedControl subviews];
    for (int i = 0; i < [arr count]; i++) {
    UIView *v = (UIView*) [arr objectAtIndex:i];
    NSArray *subarr = [v subviews];
        for (int j = 0; j < [subarr count]; j++) {
            if ([[subarr objectAtIndex:j] isKindOfClass:[UILabel class]]) {
                UILabel *l = (UILabel*) [subarr objectAtIndex:j];
                l.transform = CGAffineTransformMakeRotation(- M_PI / 2.0); //do the reverse of what Ben did
            }
        }
    }

Swift 2 версия:

for view in segmentedControl.subviews {
    for subview in view.subviews {
        if subview.isKindOfClass(UILabel) {
            subview.transform = CGAffineTransformMakeRotation(CGFloat(-M_PI / 2.0))
        }
    }
}
4 голосов
/ 16 августа 2010

Этот элемент управления только горизонтальный. Из документации UISegementedControl :

Объект UISegmentedControl является горизонтальное управление из нескольких сегменты, каждый сегмент функционирует как дискретная кнопка. Сегментированный контроль предоставляет компактные средства для группировки вместе несколько элементов управления.

Вы должны будете сделать это как пользовательский элемент управления.

0 голосов
/ 11 августа 2015

Я нашел приведенный ниже элемент управления в элементах управления какао, который выглядит неплохо. Это пользовательский элемент управления и выглядит как подкласс UIControl.

smverticalsegmentedcontrol

Но если вы спросите меня, я могу попробовать другой подход, я создам табличное представление с шириной столбца (44 пикселя) и сохраню его как дочерний элемент в контейнере и могу выровнять его по одному углу контейнера, настроив Ячейки и мой список в этом и при нажатии каждой строки, загрузите соответствующий контент в представлении сведений в вашем представлении содержимого. Не пробовал, постараюсь выложить результаты в ближайшее время.

...