我有一些UILabel,其中任何一个都会根据它们所代表的NSArray索引的索引进行更新。我想过按标签选择它们
self.displayLabel.tag = myArray[index];
但是这会将标记值更改为我的数组目前保存的内容
使用字典表示它提供的任何技巧而不是NSArray都无济于事,因为我仍然需要选择正确的匹配标签。这是我想要实现的效果。
self.|mySelectedLabel|.text = myArray[index];
我应该放入什么| mySelectedLabel |得到我正在寻找的那个?
在我的声望级别问我几乎感到羞耻,但这让我感到沮丧 每次搜索都会显示如何设置标签和更改,而不是选择
的过程答案 0 :(得分:1)
假设您已将标记设置为适当的索引以匹配您的标记
数组索引可以使用[self.view viewWithTag:index]
;
答案 1 :(得分:0)
为什么不设置标签:
self.displayLabel.tag = index;
此外,你可以循环一系列标签并找到合适的标签:
for (UILabel *label : labelArray) {
if (label.tag == index) {
label.text = @"I found you!";
}
}
答案 2 :(得分:0)
您可以通过引用来引用特定的文本字段,而不是使用标记:
// Create an array to hold your textfields
NSMutableArray *textFields = [NSMutableArray array]
// Create your textfields and add them to the array
UITextField *textField;
for (NSUInteger idx = 0: idx++; idx < numberOfTextFieldsYouWant) {
textField = [UITextField alloc] initWithFrame:<whateverYouWant>];
[textFields addObject:textField];
}
由于您要将对象添加到数组中,而不是使用标记值0,1,2 ......您只需通过数组中的索引访问它
所以,对于你想做的事,你可以这样做:
textfields[index].text = myArray[index];
它更清晰,不依赖于魔术标签,并且您拥有一系列可以删除或在一个地方更改的动态文本字段。
我认为标签被大量滥用,在大多数情况下它们并不是必需的。
答案 3 :(得分:0)
只是让你知道我重新解决了这个问题,这最终对我有用,而不必使用数组 (通过无尽的实验,我有点碰到它,所以我不知道它是否构成了良好的技术)
与行李重量相对应的所需标签(可能的数量之一)显示正确的更新
- (IBAction)acceptWeight:(UIButton *)sender {
int tempValue = (int) currentWeight;
// current weight comes from a UISegementedController
for (UILabel *labels in self.view.subviews)
{
if (labels.tag == currentWeight)
{
bags[tempValue]++;
labels.text = [NSString stringWithFormat:@"%i",bags[tempValue]];
}
}
totalKilo = totalKilo + (int)currentWeight;
self.totalKilo.text = [NSString stringWithFormat:@"%d",totalKilo];
}