0

我的应用程序有一个创建标签的方法

     -(void)addLabel:(float)x:(float)y:(float)w:(float)h:(NSString *)text {
        CGRect label1Frame = CGRectMake( x, y, w, h );
        UILabel *label1 = [[UILabel alloc] initWithFrame: label1Frame];
        label1.text = text;
        [self.view addSubview:label1];}

然后我从其他方法调用这个方法。

我如何访问这些标签之一以将其从超级视图中删除,因为我没有它的 var 名称。

4

2 回答 2

1
-(void)addLabel:(float)x :(float)y :(float)w :(float)h :(NSString *)text tag:(NSInteger)tag {
    CGRect label1Frame = CGRectMake( x, y, w, h );
    UILabel *label1 = [[UILabel alloc] initWithFrame: label1Frame];
    label1.tag = tag;
    label1.text = text;
    [self.view addSubview:label1];
}

然后传入一个适当的tag值(一个整数),它是唯一的。然后使用:

UILabel *label = (UILabel *)[self.view viewWithTag:someIntID];

访问它。

于 2012-08-15T20:51:53.613 回答
0

您需要为其创建一个 ivar/属性。如果你不想在你的接口上有这个标签,在你的实现文件中声明一个类扩展并声明你的标签

@interface yourclass()
@property (nonatomic, weak)UILabel *yourLabel;
@end

请记住将您的 @synthesize 添加到您的实现文件中。将标签添加为子视图后将值分配给属性。

于 2012-08-15T20:49:44.303 回答