Использование UISegmentedControl в нижнем колонтитуле UIPopoverController

В моем видоискателе iPad (iTunes Link), я пытаюсь воссоздать внешний вид UISegmentedControl, как видно из нижнего колонтитула Создание основной записи в popover:

Keynote

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

Viewfinder

Приветствуются любые советы по воссозданию представления Keynote. Если у вас нет Keynote на iPad, вы можете увидеть ту же технику в нижнем колонтитуле Bookmarks popover в Maps.

Ответ 1

Вам нужно установить 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];

EDIT: теперь я получил его, просто не устанавливаю tintColor, он наследует правильный цвет (что бы это ни было). Снимок экрана ниже выглядит точно так же, как в приложении Google Maps:

alt text http://www.memorylifter.com/services/dev/linklist/SCREENSHOT_TABBAT.png

Ответ 2

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

Ответ 3

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