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运行时动态添加属性,但这很重要)。