如何更改UISwitch的文本iOS 5?
问题描述:
我用下面的代码(categorie)来改变它不起作用的BU。如何更改UISwitch的文本iOS 5?
代码:(从iphone cookbook章8-8原码)
#import "UISwitch+Extended.h"
@interface UISwitch (extended)
- (void) setAlternateColors:(BOOL) boolean;
@end
@interface _UISwitchSlider : UISlider
@end
@implementation UISwitch (Extended)
- (_UISwitchSlider *) slider {
return [[self subviews] lastObject];
}
- (UIView *) textHolder {
return [[[self slider] subviews] objectAtIndex:1];
}
- (UILabel *) leftLabel {
return [[[self textHolder] subviews] objectAtIndex:0];
}
- (UILabel *) rightLabel {
return [[[self textHolder] subviews] objectAtIndex:1];
}
- (void) setLeftLabelText: (NSString *) labelText {
[[self leftLabel] setText:labelText]; //error occurred here.
}
- (void) setRightLabelText: (NSString *) labelText {
[[self rightLabel] setText:labelText];
}
任何想法,请。
答
此代码通过索引访问子视图,它们可能在新iOS中发生更改。打印交换机的所有子视图并找到您需要的子视图。
+0
我确实是[[[self textHolder]子视图] objectAtIndex:0]返回UIImageview也没有UILabel里面的UIView([[self textHolder]子视图]) –
+0
也许它是更深的地方,也许他们现在使用图像,而不是文本,您可以将它们显示在某处以检查该内容并根据需要进行更改。对不起,我没有确切的解决方案。 – mifki
为什么依赖私人视图层次结构是一个很好的例子是一个可怕的想法。这是一种黑客攻击,就像大多数黑客一旦发生任何变化就会中断一样。 – jrturton