Подтвердить что ты не робот

Можно ли показать объект UISegmentedControl по вертикали?

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

4b9b3361

Ответ 1

+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))
        }
    }
}

Ответ 2

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

segmentedControl.transform = CGAffineTransformMakeRotation (M_PI/2.0);

Ответ 3

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

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

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

Ответ 4

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

smverticalsegmentedcontrol

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