【问题标题】:How to properly utilize UISegmentedControl?如何正确利用 UISegmentedControl?
【发布时间】:2023-03-20 13:59:01
【问题描述】:

我是 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 all 中的属性我已经设置了自定义色调颜色(选择了整个片段,然后双击每个单独的片段),但在启动应用程序时只有左侧片段被着色 - 右侧的边框是仍然是默认的蓝色。如果在iOS Simulator 中单击右侧部分,则颜色将更改为正确的设置色调。我还在侧边栏中设置了默认选择哪一个,但它没有在情节提要中显示。不确定我是否做对了,这些是XCode 中的小错误,或者我是否错过了某些东西或一开始就做错了。

Xcode 故事板:

iOS 模拟器启动时:

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

【问题讨论】:

    标签: ios objective-c xcode uisegmentedcontrol tint


    【解决方案1】:

    这就是 tint color 在 iOS 7 中的工作方式。您可以使用该函数进一步自定义控件

    [控制setBackgroundImage:forState:barMetrics:]

    你可以这样称呼它——

    [控制 setBackgroundImage:unselectedBackImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

    [控件 setBackgroundImage:selectedBackgroundImage forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];

    【讨论】:

    • 您好。我认为某些事情肯定无法正常工作。我添加了一些图片以进一步说明情况。
    • 这很奇怪。我无法仅使用情节提要重新创建...您是否在代码中的某处设置了边框颜色?我会尝试删除该控件并重新开始。某些设置可能在某个地方搞砸了。
    • 我遵循了完全相同的步骤,并且问题再次发生,如上所示。您使用的是 Xcode 5.0.2 吗?只需拖出一个段,按住控件并拖动到 ViewController,输入名称并将 id 更改为 UISegmentedControl,单击它并通过侧边栏更改色调,将左侧设置为选中,然后在该函数中添加代码。
    • 逐步进行。添加控件而不更改任何设置,然后运行应用程序。每次更改设置后,再次运行它。这样你就可以确定是什么导致了奇怪的变化。
    • 我在使用全新应用时没有遇到任何问题。把它拖出来,改变色调,运行,它的颜色和预期的一样。但是当我在我的真实应用程序中这样做时,正确的部分是默认的蓝色,直到点击。奇怪,因为我没有对 tint 做任何其他事情 - 不确定问题出在哪里。
    猜你喜欢
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    相关资源
    最近更新 更多