0

在我的应用程序中,我的视图控制器中有 5 个 UIView,每个视图都有 6 个 UILabel。对于每个标签,我在每个视图中设置一个标签,例如:

在第一个 UIView:firtLabel 标签 101,secondLabel 标签 102 exc... 在第二个 UIView:firtLabel 标签 101,secondLabel 标签 102 exc... 在第三个 UIView:firtLabel 标签 101,secondLabel 标签 102 exc...exc...

并且为每个 UIView 我设置了一个标签,例如:对于第一个 UIView 标签 1 对于第二个 UIView 标签 2 exc ...

然后在我的代码中我这样做:

for (int i = 0; i<5; i++){

    UIView *viewSingle = (UIView*)[self.view viewWithTag:i+1];
    UILabel *data1 = (UILabel*)[viewSingle viewWithTag:100+i+1];
    [[data1 setText:[array1 objectAtIndex:i]];
    UILabel *data2 = (UILabel*)[viewSingle viewWithTag:100+i+2];
    [[data2 setText:[array2 objectAtIndex:i]];

    exc...
} 

此代码仅更改第一个 UIView 中的标签,而不更改其他 UIView 中的标签,为什么?

4

1 回答 1

2

在计算用于检索 UILabel 的标签时,不应使用i 。例如

UILabel *data1 = (UILabel*)[viewSingle viewWithTag: 101];

代替

UILabel *data1 = (UILabel*)[viewSingle viewWithTag: 100 + i + 1];
于 2013-05-28T19:58:29.320 回答