【问题标题】:Equivalent of UISegmentedControl selectedSegmentIndex in UISwtich- Objective CUISwtich-Objective C 中 UISegmentedControl selectedSegmentIndex 的等价物
【发布时间】:2016-02-26 10:11:16
【问题描述】:

我正在尝试将 UISegmentedControl 转换为 UISwitch。我成功检查了开关的状态。

然后我看到了这行代码:

self.mobile3GSegment.selectedSegmentIndex = [mConfigurationService getBoolWithKey:NETWORK_USE_3G];

我试图猜测 UISwitch 是如何做到的。所以……

self.mobile3GSwitch.state = [mConfigurationService getBoolWithKey:NETWORK_USE_3G];

然后我得到这个错误:

在 UISwitch 类型的对象上找不到属性“selectedSegmentIndex”

我知道 UISwitch 不是一个段,它返回 YES 或 NO。错误不是这里的重点。我想了解的是如何转换代码段以使其适用于 UISwitch。

我现在几乎迷路了。这样做的正确方法是什么?

【问题讨论】:

  • 是的,我知道。我的问题与你的回答不同。
  • 分享方法getBoolWithKey的实现。

标签: ios objective-c uiswitch


【解决方案1】:

你必须使用一个简单的函数setOn(假设你返回bool的方法是正确的)。

[_mobile3GSwitch setOn:[mConfigurationService getBoolWithKey:NETWORK_USE_3G] animated:NO]; 

【讨论】:

  • 我正在使用一个非常旧的库。这是 getBoolWithKey -(BOOL)getBoolWithKey: (NSString*)key{ return [defaults boolForKey:key]; } 感谢你的回答。这是我第一次处理开关,所以我只需要寻求帮助,因为我没有太多时间参与这个项目。
  • 嗯,那么你的方法是安全的。它没有错。快乐编码
【解决方案2】:

UISwitch 是二进制的:开或关。它具有属性on,而不是选定的段索引,因为没有段。 当您遇到困难时,最好查看来自 Apple 的文档:link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2021-08-09
    • 1970-01-01
    • 2010-11-03
    相关资源
    最近更新 更多