Использование UISegmentedControl в нижнем колонтитуле UIPopoverController - PullRequest
10 голосов
/ 19 июля 2010

В моем видоискателе приложения для iPad ( iTunes Link ) я пытаюсь воссоздать вид UISegmentedControl, который виден в нижнем колонтитуле Keynote's Build In popover:

Keynote

iPad HIG предлагает использовать UIToolbar с выравниванием по нижнему краю, но внешний вид неверный. Этот снимок экрана показывает Black Opaque, но ни один из стандартных стилей не соответствует Keynote.

Viewfinder

Буду признателен за любые советы по воссозданию образа Keynote. Если у вас нет Keynote на iPad, вы можете увидеть ту же технику в нижней части всплывающего окна «Закладки» в Картах.

Ответы [ 3 ]

18 голосов
/ 19 июля 2010

Вам нужно установить toolbarItems вашего верхнего UIViewController в вашем UIPopover и настроить его правильно. Рассмотрим что-то вроде этого:

        NSArray *segmentedItems = [NSArray arrayWithObjects:@"Bookmarks", @"Recents", @"Contacts", nil];
        UISegmentedControl *ctrl = [[UISegmentedControl alloc] initWithItems:segmentedItems];
        ctrl.segmentedControlStyle = UISegmentedControlStyleBar;
        ctrl.selectedSegmentIndex = 0;

        UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:ctrl];
        ctrl.frame = CGRectMake(0.0f, 5.0f, 320.0f, 30.0f);

        NSArray *theToolbarItems = [NSArray arrayWithObjects:item, nil];
        [self setToolbarItems:theToolbarItems];
        [ctrl release]; 
        [item release];

РЕДАКТИРОВАТЬ: Теперь я получил его, просто не устанавливайте tintColor, он будет наследовать правильный цвет (что бы это ни было). Снимок экрана ниже теперь выглядит точно так же, как в приложении Google Maps:

альтернативный текст http://www.memorylifter.com/services/dev/linklist/SCREENSHOT_TABBAT.png

1 голос
/ 24 сентября 2010

Я только что столкнулся с этой проблемой. Вам нужно вставить UINavigationController в UIPopover. Ваш вид должен быть включен в этот контроллер навигации. Это получает верхнюю панель (панель навигации, чтобы отформатировать красиво). Я бы предположил, что нижняя полоса следует за этим, но я не проверял это!

0 голосов
/ 19 июля 2010

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

...