您的位置:首页 > 移动开发 > IOS开发

IOS开发-自定义全局变量方法来定位界面元素的方法

2015-02-27 12:16 369 查看
假期的时候在写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(@"进这行了");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: