6

如何获得与邮件应用程序中的 UISegmentedControl 类似的 UISegmentedControl,以便它与 UIToolbar 按钮的颜色相同(就好像两个段都处于选定状态一样)。

我想将分段控件用于与 Mail 完全相同的目的。

(在 iPad 上,所以是灰色而不是蓝色)

4

5 回答 5

6

这是来自 Apple 示例代码的代码...导航栏和代码中使用的两个图像..您应该能够获得与邮件应用程序完全相同的视图。

替代文字 替代文字

// "Segmented" control to the right
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:
                                            [NSArray arrayWithObjects:
                                                [UIImage imageNamed:@"up.png"],
                                                [UIImage imageNamed:@"down.png"],
                                             nil]];
[segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
segmentedControl.frame = CGRectMake(0, 0, 90, 30);
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.momentary = YES;

defaultTintColor = [segmentedControl.tintColor retain];    // keep track of this for later

UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];
[segmentedControl release];

self.navigationItem.rightBarButtonItem = segmentBarItem;
[segmentBarItem release];
于 2010-09-26T20:23:16.843 回答
3

你寻求tintColor财产!

当您使用 a 时,UISegmentedControl您可以将其色调更改为您可以想象的任何颜色。因此,如果您在 Interface Builder 中添加了 UISegmentedControl,那么您将在您的- (void)viewWillAppear:(BOOL)animated方法中设置它的样式(假设您已将其连接到 @synthesized ivar:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    // Set the tintColor to match the navigation bar
    self.mySegmentedControl.tintColor = [UIColor colorWithRed:.94 green:.94 blue:.94 alpha:1];

    ... do whatever else in your viewWillAppear ...
}

现在显然你会想要使用我在上面的示例代码中放入的红色、绿色、蓝色和 alpha,但是你可以将 UISegmentedController 着色为任何你想要的颜色(或者让它像你想要的一样透明),因此只需找到对您来说完美的 RGBA 值。

请记住,根据 Apple 的文档the default value of this property is nil (no color). UISegmentedControl uses this property only if the style of the segmented control is UISegmentedControlStyleBar.

祝你好运!

于 2010-09-27T19:29:33.103 回答
1

我正在寻找的风格是无证的:它是风格 4。看起来他在这里上/下控制:http: //media.mobilemeandering.com/wp-content/uploads/2010/04/ipad-mail-message -2.png (不是我的图像顺便说一句)

它基本上使所有段看起来都被选中,它是为瞬时推动而设计的,并且实际上是将多个工具栏按钮推到一起。所以它不能在 IB 中设置,但必须在代码中设置或在 nib/xib 文件中手动设置,方法是将 nib 作为文本文件打开。

于 2010-11-25T21:13:42.187 回答
1

我不知道你的意思..但我相信“UISegmentedControlStyleBar”可以作为segmentedControlStyle。

segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar

您也可以在 IB 中设置此属性!(这是称为“样式”的属性)

于 2010-09-22T19:15:39.050 回答
0

我不确定我是否完全理解你想要做什么,但我会试一试。

解决方案并不明显,您需要使用UISearchDisplayController才能获得匹配的 UISearchBar 和 UISegmentedControl。

有关示例,请参阅TableSearch示例代码。

于 2010-09-30T23:22:14.093 回答