Iphone 在UIPopoverController的页脚中使用UISegmentedControl

Iphone 在UIPopoverController的页脚中使用UISegmentedControl,iphone,ipad,uisegmentedcontrol,uipopovercontroller,hig,Iphone,Ipad,Uisegmentedcontrol,Uipopovercontroller,Hig,在我的iPad应用程序Viewfinder()中,我试图重新创建UISegmentedControl的外观,如Keynote内置popover的页脚所示: iPad HIG建议使用底部对齐的UIToolbar,但外观不正确。此屏幕截图显示黑色不透明,但没有一种标准样式与注释记号匹配 如果您有任何关于重塑主题外观的建议,我们将不胜感激。如果iPad上没有Keynote,您可以在“地图”中书签弹出窗口的页脚中看到相同的技术。看起来他们正在将分段控件放在tableView的页脚视图中。(第一个屏

在我的iPad应用程序Viewfinder()中,我试图重新创建UISegmentedControl的外观,如Keynote内置popover的页脚所示:

iPad HIG建议使用底部对齐的UIToolbar,但外观不正确。此屏幕截图显示黑色不透明,但没有一种标准样式与注释记号匹配


如果您有任何关于重塑主题外观的建议,我们将不胜感激。如果iPad上没有Keynote,您可以在“地图”中书签弹出窗口的页脚中看到相同的技术。

看起来他们正在将分段控件放在tableView的页脚视图中。(第一个屏幕截图)。如果可能的话,我会尝试这样做,否则您可能会对UIToolbar进行子类化并重写drawRect:以获得您想要的外观。

您需要的是在
UIPover
中设置顶部
UIViewController
工具栏项
,并对其进行正确配置。考虑这样的事情:

        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,它将继承正确的颜色(无论它是什么)。下面的屏幕截图现在看起来与谷歌地图应用程序中的截图一模一样:


我刚刚遇到了这个问题。您需要将UINavigationController推入UIPover。然后,您的视图应包含在该导航控制器中。这将获得顶部栏(导航栏的格式很好)。我会假设底部的条遵循这一点,但我还没有测试它

但是,分段的控件按钮看起来仍然不正确。正如我所写的,您需要找出正确的tintColor,并通过调用ctrl.tintColor=[UIColor whateverColor]进行设置。你可以尝试使用Photoshop来获得颜色。因为我没有Photoshop,也没有其他可能从截图中获取颜色代码,所以我只选择任意颜色。此外,我现在不想随机尝试。因此,tintColor将更改按钮的颜色,而不仅仅是背景?要使其正常工作,您需要添加
self.navigationController.toolbarHidden=NOUIViewController
方法的
viewDidLoad
方法中的code>(并且所讨论的
UIViewController
必须在
UINavigationController
中)。我现在正在做一些非常类似的事情,发现这个问题上有我无用的答案。有趣。