假期的时候在写demo的时候遇到一个IOS界面元素定位的问题,今天跟同事交流这个问题,同事的思路是使用自定义全局变量、方法,或者可以叫定制全局变量和方法来实现界面元素的查找,思路如下:
1.在引入头文件的时候自定义系统类名,在.m或.h文件的头文件加以下代码:
#import <UIKit/UIKit.h>
@interface appstoreViewController : UIViewController
@property (strong, nonatomic) UIButton *osButton1;
@property (strong, nonatomic) UIButton *osButton2;
@end
2.在实例化一个view的时候,在代码里加以下代码:
//事件监听的问题
CGRect btn1Frame = CGRectMake(100.0, 150.0, 60.0, 44.0);
//两种不同的方式创建
UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn1.frame =btn1Frame;
//设置Title
[btn1 setTitle:@"BTN1" forState:UIControlStateNormal];
[btn1 setTag:10002];
//[btn2 setBackgroundImage:[UIImage imageNamed:@"pic.png"] forState:UIControlStateNormal];
[btn1 setBackgroundColor:[UIColor blueColor]];
[btn1 addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn1];
self.osButton1 = btn1;//把按钮全局话
//事件监听的问题
CGRect btn2Frame = CGRectMake(200.0, 150.0, 60.0, 44.0);
//两种不同的方式创建
UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn2.frame =btn2Frame;
//设置Title
[btn2 setTitle:@"BTN2" forState:UIControlStateNormal];
[btn2 setTag:10001];
//[btn2 setBackgroundImage:[UIImage imageNamed:@"pic.png"] forState:UIControlStateNormal];
[btn2 setBackgroundColor:[UIColor blueColor]];
[btn2 addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn2];
self.osButton2 = btn2;//把按钮全局话
3.定义方法如下,代码如下:
-(void)btnPressed:(id)sender{
UIButton *thisBtn = (UIButton*)sender;
//thisBtn.hidden = YES;
//self.view viewWithTag:[00002];
// UIButton *myButton = (UIButton *)[self.view viewWithTag:(10002)];
// myButton.hidden = YES;
// NSLog(@"this button tag is %d",thisBtn.tag);
NSLog(@"self.view subViews %@",self.view.subviews);
// UIButton* thisBtn = (UIButton *)sender;
// [[[UIAlertView alloc] initWithTitle:@"Button" message:[NSString stringWithFormat: @"This is button:%@",thisBtn] delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil] show];
// NSLog(@"this tag is %d",btn.tag);
if ([sender isEqual:self.osButton1]){
self.osButton2.hidden = YES;
}else if ([sender isEqual:self.osButton2]){
}else{
NSLog(@"进这行了");
}
}