Ios 访问本地定义的标签

Ios 访问本地定义的标签,ios,uilabel,Ios,Uilabel,我的应用程序有一个创建标签的方法 -(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;

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

     -(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];}
然后我从其他方法调用这个方法


我如何访问其中一个标签以将其从superview中删除,因为我没有它的var名称。

您需要为它创建一个ivar/属性。如果不想在接口上使用此标签,请在实现文件中声明一个类扩展名并声明标签

@interface yourclass()
@property (nonatomic, weak)UILabel *yourLabel;
@end
记住将@synthesis添加到实现文件中。将标签添加为子视图后,将值指定给特性

-(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];
}
然后传入一个适当的
标记
值(一个整数),该值是唯一的。然后使用:

UILabel *label = (UILabel *)[self.view viewWithTag:someIntID];
访问它。

您不需要。此外,OP的方法似乎是一种工厂方法——因此标签的数量在运行时是动态决定的,因此您不能在编译时轻松地添加属性(您实际上可以使用Objective-C运行时动态添加属性,但这很重要)。