使用标签更改标签的文本

时间:2012-04-02 20:51:00

标签: iphone objective-c

这是我想做的。

我有5个标签。我想使用变量更改属性(背景颜色)。因此,如果变量(x)等于3,它将改变label03上的背景。

同时,将有5张图片。我会使用相同的变量更改属性(alpha)。因此,如果变量(x)如上所述等于3,则会更改label03背景和image03上的alpha。

我缺少的是选择正确标签的方法,因此(x)指向我需要它指向的内容。

4 个答案:

答案 0 :(得分:1)

假设您正在使用笔尖创建和定位这些元素,您只需打开属性检查器并为每个标签和图像设置标记。我会给标签标签1x,图像标签2x(其中x是元素的编号)。因此标签具有标签10-14并且图像具有标签20-24。然后在viewController中,如果你有一个int x,你可以使用以下行获得label和imageViews。

UILabel *label = [self.view viewWithTag:10+x];
UIImageView *imageView = [self.view viewWithTag:20+x];

答案 1 :(得分:1)

我认为你应该这样做:

// create an offset by control type (zero is not a good value here)
#define kLABEL_TAG_OFFSET  32
#define kIMAGE_TAG_OFFSET  64

// when creating the controls
UILabel *label0 = [[UILabel alloc] initWithFrame:...];
label0.tag = kLABEL_TAG_OFFSET + 0;

// and so on 0..3
label4.tag = kLABEL_TAG_OFFSET + 4;
imageView4.tag = kIMAGE_TAG_OFFSET + 4

// then, when you want to alter a particular image and label
//
- (void)setPropertiesOnControlsIndexedBy:(NSInteger)index {

    UILabel *label = (UILabel *)[self.view viewWithTag:kLABEL_TAG_OFFSET + index];
    UImageView *image = (UImageView *)[self.view viewWithTag:kIMAGE_TAG_OFFSET + index];

    label.backgroundColor = [UIColor greenColor];
    image.alpha = 0.5;
}

答案 2 :(得分:0)

创建/自定义viewDidLoad中的所有标签和图像,每次更改变量值时,都要告诉视图重新加载。

 [someView reloadData];

答案 3 :(得分:0)

如果要更改x,请调用-reloadData,并将默认值设置为x,因此在重新加载时,它们会自动更改。

- (void) xChanged {

    [self.tableView reloadData];    

}

- (UITableViewCell *) tableView:(UITableView *) tv cellForRowAtIndexPath:(NSIndexPath *) ip {

    cell.imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"image-%d", x]];
    cell.imageView.alpha = x;

}