如何正确使用UISegmentedControl?

时间:2014-01-14 15:39:39

标签: ios objective-c xcode uisegmentedcontrol tint

我是iOS开发的新手,想知道实现UISegmentedControl的正确方法。

我拖出了片段,将其放在我想要的位置,通过侧边栏中的属性更改了色调,然后更改了每个片段的文本。然后我控制并拖动到ViewController.m以创建出口。这是函数:

- (IBAction)touchSegment:(UISegmentedControl *)sender {
    NSString *selectedSegmentTitle = [sender titleForSegmentAtIndex:sender.selectedSegmentIndex];

    if ([selectedSegmentTitle isEqualToString:@"2 cards"]) {
        NSLog(@"first tapped");
    }
    else if ([selectedSegmentTitle isEqualToString:@"3 cards"]) {
        NSLog(@"second tapped");
    }
}

这是直观的,但它无法正常工作。虽然XCode所有状态中的属性都设置了自定义色调颜色(选择整个片段,然后双击每个片段),但在启动应用时只有左侧片段被着色 - 右边仍然是默认的蓝色。如果在iOS Simulator中我点击了右边的部分,则颜色会更改为正确的设置色调。我还设置了边栏中默认选择的那个,但它没有在故事板中显示。不确定我是否做得对,这些是XCode中的小错误,或者如果我错过了某些内容或者首先做错了。

Xcode故事板:
enter image description here

启动时的iOS模拟器:
enter image description here

我正在运行Xcode 5.0.2iOS Simulator v7.0.3。谢谢!

1 个答案:

答案 0 :(得分:0)

这就是色调颜色在iOS 7中的工作方式。您可以使用函数

进一步自定义控件

[control setBackgroundImage:forState:barMetrics:]

你可以这样称呼它 -

[control setBackgroundImage:unselectedBackImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

[control setBackgroundImage:selectedBackgroundImage forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];