Snail—UI学习之得到某组件的方法
2023-09-27 14:27:00 时间
第一种方法:依据传入函数的參数对象的tag属性区分
比方 多个button运行同一个方法,可是不同的方法运行时。里面的逻辑又不一样 那就得加以区分 这时能够用tag来差别
//再新建一个Button UIButton * button2 = [UIButton buttonWithType:UIButtonTypeSystem]; button2.frame = CGRectMake(20, 60, 280, 30); button2.tag = 2; button2.backgroundColor = [UIColor redColor]; [button2 setTitle:@"点我2" forState:UIControlStateNormal]; //此action中得click:是代表有參数的click方法 [button2 addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button2]; //自己定义按钮 UIButtonTypeCustom UIButton * button3 = [UIButton buttonWithType:UIButtonTypeCustom]; button3.frame = CGRectMake(20, 100, 31, 30); [button3 setTitle:@"点我3" forState:UIControlStateNormal]; button3.tag = 3; //设置button的初始状态 已经选择的状态 button3.selected = NO; //设置自己定义按钮两种状态下得不同图片 //未选中状态显示的是第一个图片 选中状态后是后边的一个图片 [button3 setImage:[UIImage imageNamed:@"star_icon@2x.png"] forState:UIControlStateNormal]; [button3 setImage:[UIImage imageNamed:@"star2_Gray@2x.png"] forState:UIControlStateSelected]; [button3 addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button3]; } //假设有多个按钮要触发同一个操作,可是又想实现不同按钮方法将运行不同操作时,就要推断一下是哪个按钮按下了 - (void)click:(UIButton *)button{ if (button.tag == 2) { NSLog(@"button2 点我了"); }else if (button.tag == 3){ NSLog(@"button3 点我了"); } }
2、能够通过设置全局变量来实现
#import "WJJRootViewController.h" @interface WJJRootViewController (){ <span style="color:#FF0000;">//为全局变量 在此类的不论什么地方都能够得到此对象 UIButton * _button3;</span> } @end @implementation WJJRootViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; }3、由于在一个界面中。我们要得到的都是此界面中得控件,所以能够通过以下的方法得到
UIButton * btn = (UIButton *)[self.view viewWithTag:3];
相关文章
- php 公共方法Util
- 【Vue】Vue组件中事件和方法的混合(mixin)应用(图文+代码示例)
- 机器学习笔记之马尔可夫链蒙特卡洛方法(四)吉布斯采样
- 微信小程序 - 父组件调用子组件的函数方法(像 Vue.js 中 ref 属性一样,直接 this.$refs.xx 获取子组件数据和方法)详细教程示例代码
- [转]Vue 中 强制组件重新渲染的正确方法
- maven 遇到failOnMissingWebXml有关问题解决方法
- Vue组件之间传值的几种方法 (直接上代码)
- maven 常见错误解决方法
- TabHost 两种使用方法 直接让一个Activity 继承TabActivity 和 利用findViwById()方法取得TagHost组件
- java验证码组件kaptcha使用方法
- 简记:自定义tabBar的组件,pageLifeTimes中的show方法无法执行?
- “代理 XP”组件已作为此服务器安全配置的一部分被关闭。解决方法
- hypervisor与VMware共存方法
- uni-app 在父组件中调用子组件的方法
- Vue子组件向父组件传值(this.$emit()方法)
- Android 从硬件到应用:一步一步向上爬 4 -- 使用 JNI 方法调硬件驱动
- 关于Unity中获得自己节点下的组件的简易方法
- 十七.jQuery源码解析之入口方法Sizzle(1)
- vue 子组件触发父组件方法的两种方式