UILabel的可变IBOutlet名称?
呃,这里有些麻烦……
我在Interface Builder中有4个显示标签,在视图控制器中设置为IBOutlets。
我用这些名称设置了label1,label2,label3,label4
我想更改随机选择标签的标签文字
我正在尝试这个……
在头文件中,我声明为属性:
@property (nonatomic retain) UILabel *myLabel;
然后在我的实现文件中我合成,我正在尝试
myLabel = [UILabel valueForKey: [NSString stringWithFormat:@"label%d", randomInt]]; myLabel.text = @"bleh!";
myLabel = [UILabel …行导致崩溃。 有帮助吗? 谢谢!
你有正确的想法,但你应该传递valueForKey:
self
,而不是UILabel
,假设它拥有这些属性的self
。
myLabel = [self valueForKey:[NSString stringWithFormat:@"label%d", randomInt]];
作为旁注,使用IBOutletCollection
可能会更好。 在Xcode 4中,选择所有标签并将它们拖到头文件中。 这将生成包含所有出口的IBOutletCollection NSArray
。 然后,您可以从该数组中选择一个随机索引。 通常不幸的是, IBOutletCollection
以非确定性的顺序存储其出口,但对于您的情况,它应该没问题。
- Xcode:构build和运行iOS模拟器和设备在一个步骤?
- 如何获取Core Data中的关系项属性?
- SQLite的。 不能添加超过1000行
- 围绕MKMapView上的一个点
- 在UIView和UITableView中冲突的UITapGestureRecognizer
- UITableView – IndexPath总是返回0,并且需要2次点击才能将正确的数据传递给视图控制器
- tableView崩溃结束了超过16个项目
- 以编程方式从通知托盘中删除UILocalNotification
- 在IOS7中不推荐使用GraphicsServices中的GSCopyPurpleNamedPort(appId),另一种方法是什么?