我使用Interface Builder为视图添加了许多标签.我还有一些我想要显示的值.
有没有比使用此代码更好的方法来设置标签:
lblTotal1.text = [NSString stringWithFormat: @"%i Seconds", (int) round(fTimeTotal[1])];
lblTotal2.text = [NSString stringWithFormat: @"%i Seconds", (int) round(fTimeTotal[2])];
lblTotal3.text = [NSString stringWithFormat: @"%i Seconds", (int) round(fTimeTotal[3])];
lblTotal4.text = [NSString stringWithFormat: @"%i Seconds", (int) round(fTimeTotal[4])];
Run Code Online (Sandbox Code Playgroud)
我想做的是这样的事情:
for (int i = 1; i<5; i++) {
lblTotal[i].text = [NSString stringWithFormat: @"%i Seconds", (int) round(fTimeTotal[i])];
}
Run Code Online (Sandbox Code Playgroud)
但是我必须能从它的名字中得到一个变量.我怎样才能做到这一点?
您可以将IBOutlet挂钩在IB中的IBOutletCollection中(选择一堆并将它们拖到源代码中;它应该提供一个集合).虽然IBOutletCollection在技术上是一个有序列表(数组),但它实际上是随机排序的.
一旦您将所有IBOutlet连接到一个IBOutletCollection中,您仍然需要知道哪个是哪个.您可以使用tag,这是您可以在IB中设置的字段之一.一旦您标记了所有内容,您的代码将是:
for (UILabel *label in self.labelCollection) {
int value = (int)roundf(fTimeTotal[label.tag]);
label.text = [NSString stringWithFormat:@"%i Seconds", value];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
620 次 |
| 最近记录: |