IOS控件布局之常见控件点击事件
前言:
还记得上次真正参与iOS项目开发是在2013年的九月份,一转眼2017年了,总来的来说有小三年没有真正做过iOS了,最近有幸又能够参与iOS项目开发了,作为一名24k纯金打造的iOS小菜鸟,希望自己能够在一年之后能够成为两端都会的那种工程师,希望自己以后更多的能够站在两端的维度上考虑问题,加油!万事开头难呀,但是学知识还是求甚解的态度来学习,今天先来总结一下这两天开发过程中控件事件处理。
UIButton添加事件
iOS中UIButton添加事件不像Android中那样直接设置一个onClickListener那样面向事件接口编程,iOS中的UIButton则是采用目标-动作的方式
UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom]; [btn setImage:[UIImage imageNamed:@"work_answer_edit_wrong"] forState:UIControlStateNormal]; [btn addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
- addTarget 指定接收事件的目标是谁 这里指定的是self 是我自己写的controller
- action 指定具体的事件action 这里指定的是back返回操作
- forControlEvents 指定事件发起的消息 这里指定的是UIControlEventTouchUpInside事件消息
具体的事件函数
-(IBAction)goBack:(id)sender{ self.myBlock(self.str); [self.navigationController popViewControllerAnimated:YES]; }
UILabel添加事件
在iOS开发中使用UILabel的频率非常高,它就相当于Android中TextView,有时候难免需要给UILabel添加事件处理,这个在Android中TextView可以像Button一样设置监听事件,但是在iOS中居然不能通过上述UIButton 那种直接采用目标-动作的模式添加事件,真不知道iOS怎么想的,哈哈,而选择通过手势的方式间接的实现目标-动作的模式传递事件。
UILabel *tipLabel=[[UILabel alloc]init]; tipLabel.text=@"所有年级"; tipLabel.textColor=colorFromHex(@"#212121"); tipLabel.font=[UIFont systemFontOfSize:15]; tipLabel.userInteractionEnabled=YES; [tipLabel addGestureRecognizer:[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickLabelSelectClass)]];
具体action实现和上述UIButton的一致
-(void)clickLabelSelectClass { NSLog(@"clickLabelSelectClass"); self.gradeView.hidden=NO; }
UIImageView添加事件
UIImageView添加事件的方式和UILabel一致
UIImageView *selectImageView=[[UIImageView alloc]init]; selectImageView.image=[UIImage imageNamed:@"login_init_addclass_select"]; selectImageView.userInteractionEnabled = YES;//打开用户交互 [selectImageView addGestureRecognizer:[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickImageViewSelectClass:)]];
action实现
-(void)clickImageViewSelectClass:(UIGestureRecognizer* )gestureRecognizer { NSLog(@"clickImageViewSelectClass"); self.gradeView.hidden=NO; }
总结:
作为一名资深小白发现自己学习的东西太多了。
干我们这行,啥时候懈怠,就意味着长进的停止,长进的停止就意味着被淘汰,只能往前冲,直到凤凰涅槃的一天!