【问题标题】:How to change text on UISwitch in iPhone?如何在 iPhone 中更改 UISwitch 上的文本?
【发布时间】:2011-11-16 00:47:44
【问题描述】:

我需要更改 UISwitch 上的文本,为此我尝试了下面的代码,

((UILabel *)[[[[[[_agreeAgb subviews] lastObject] subviews] objectAtIndex:2] subviews] objectAtIndex:0]).text = @"Foo";
((UILabel *)[[[[[[_agreeAgb subviews] lastObject] subviews] objectAtIndex:2] subviews] objectAtIndex:1]).text = @"Bar";

但它在objectAtIndex 崩溃了

除了制作自定义 UISwitch 之外,还有其他方法吗?

【问题讨论】:

  • 永远不要使用这种黑客技术来修改内置的 UIControls。将来,如果在 iOS 的后续更新中控件的实现发生变化,它们可能会停止工作。
  • 还有其他方法吗?
  • 我已将其作为答案发布在下面。

标签: iphone ios4 uiswitch


【解决方案1】:

自定义 UISwitch 的另一个选项:https://github.com/alexnauda/ERScrollSwitch

【讨论】:

    【解决方案2】:

    现在有一个更好的解决方案。任何需要自定义开关的人都应该检查https://github.com/domesticcatsoftware/DCRoundSwitch

    【讨论】:

      【解决方案3】:

      切勿使用此类黑客技术来修改内置 UIControls。将来,如果在 iOS 的后续更新中控件的实现发生变化,它们可能会停止工作。

      如果您想使用自己的文本自定义 UISwitch,您可以将 UISegmentedControl 用于新文本。比如要获取用户的gender,而不是改变UISwitch的onoff标签文字,可以使用segmented控制两个项目“男性”和“女性”。

      【讨论】:

      【解决方案4】:

      你没有说 哪个 objectAtIndex: 导致了崩溃,但无论如何,它没有实际意义:UISwitch 目前不允许自定义标签。

      【讨论】:

        猜你喜欢
        • 2011-02-12
        • 2011-10-12
        • 1970-01-01
        • 2023-04-07
        • 2011-06-15
        • 2011-06-30
        • 2011-08-31
        • 1970-01-01
        • 2012-02-22
        相关资源
        最近更新 更多