Using a UISegmentedControl in the footer of UIPopoverController

时光总嘲笑我的痴心妄想 提交于 2019-12-18 10:30:46

问题


In my iPad app Viewfinder (iTunes Link), I'm trying to recreate the look of a UISegmentedControl as seen in the footer of Keynote's Build In popover:

The iPad HIG suggests using a bottom-aligned UIToolbar, but the appearance is incorrect. This screenshot shows Black Opaque, but none of the standard styles match Keynote.

Any advice on recreating the Keynote look would be appreciated. If you don't have Keynote on the iPad, you can see the same technique in the footer of the Bookmarks popover in Maps.


回答1:


What you need is to set the toolbarItems of your top UIViewController in your UIPopover and configure it properly. Consider something like this:

        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: Now i got it, just do not set the tintColor, it will inherit the correct color (whatever it is). The screenshot below now looks exactly like the one in the Google Maps App:

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




回答2:


I just ran into this issue. You need to push a UINavigationController into the UIPopover. Your view should then be included in that navigation controller. This gets the top bar(navigation bar to format nicely). I would assume that the bottom bar follows this but I have not tested it!




回答3:


it looks like they are putting the segmented control in the footer view of the tableView. (first screenshot). I would try that if possible, else you could perhaps work on subclassing UIToolbar and overriding drawRect: to get the look you want.



来源:https://stackoverflow.com/questions/3284111/using-a-uisegmentedcontrol-in-the-footer-of-uipopovercontroller

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!