在iOS 4.2中更改UISwitch文本
我正在尝试更改UISwitch中的文本。 来自网站的示例( 更改UISwitch上的文本 )工作正常,但是当我将xcode升级到3.2.5和iOS 4.2时,应用程序会在调用函数来更改文本时崩溃。 我正在使用网站中的以下示例。
例如。
((UILabel *)[[[[[[_agreeAgb subviews] lastObject] subviews] objectAtIndex:2] subviews] objectAtIndex:0]).text = @"Foo"; ((UILabel *)[[[[[[_agreeAgb subviews] lastObject] subviews] objectAtIndex:2] subviews] objectAtIndex:1]).text = @"Bar";
抛出的exception是因为遇到空对象。
谢谢。
不要这样做。 操纵框架控件的私有视图层次是绝对不受支持的,并且可能导致与操作系统更新不兼容。 特别是因为你的代码绝对没有对层次结构进行validation,所以如果子视图的数量或types与你所期望的不一致,那么你很容易崩溃。
我从这里用这个代码发现了4.2的成功。 它的子类UISlider(而不是UISwitch)来实现看起来像定制的UISwitch相同的效果。
目前还没有支持更改TEXT的方法,但是您可以通过设置iOS 6中引入的onImage
和offImage
属性来更改显示内容
尝试使用可定制的开源UISwitchreplace。
这似乎是相当不错的: GitHub上的DCRoundSwitch ,但是GitHub上还有更多,如果这不起作用。
这种types的方法不具有相同的不兼容性问题,因为它实现了交换机的function和绘图本身,只依赖于UIControl基本类的核心function。 唯一可能需要不时更新的是你正在使用的库(DCRoundSwitch),但是像UIControl和Quartz绘图这样的基本function是相当成熟的,很less发生变化,所以这可以安全地被认为是一个罕见的和最小的风险因素。
- 为什么Facebook在iOS中返回friendlist 0? 如何检索FB的朋友列表,并将其存储parsing?
- Parse.com是否有可能login使用Facebook,同时检查Facebook用户的电子邮件是否存在于用户parsing,如果它链接两者?
- Libtool问题,同时编译Liblinphone
- 如何使用AVMutableCompositionTrack合并audio和video
- Swift中的反思还是仅仅是自省?
- 如何将重写函数插入到if语句中
- 谷歌search的地方API,找不到的地方
- SWRevealViewController和TableView – 刷卡删除不起作用
- 添加顶部/底部视图到UITableViewController?