addTarget 点击方式
- 继承 UIController 的拥有addTarget点击事件
UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
button.backgroundColor = [UIColor yellowColor];
button.titleLabel.text = @"按钮";
[self.view addSubview:button];
[button addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
//按钮触发事件
-(void)btnClick:(UIButton *)button{
NSLog(@"点击事件");
}
- 代理 协议
<UIScrollViewDelegate> //遵守协议
UIScrollView *scrollVC = [[UIScrollView alloc]initWithFrame:CGRectMake(self.view.frame.size.width/2-100, self.view.frame.size.height/2-100, 200, 200)];
[self.view addSubview:scrollVC];
//设置代理 遵守协议
scrollVC.delegate = self;
// ScrollView 即将开始拖拽的时候调用
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
NSLog(@"即将开始拖拽");
}
// ScrollView 用户即将停止拖拽
-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{
NSLog(@"用户即将停止拖拽");
}
- 部分UI 两种方式都有
<UITextFieldDelegate>
//TextView 文本输入 监听事件可以通过 代理 或者 addTarget 两种方式
UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(100, 300, 200, 30)];
textField.backgroundColor = [UIColor whiteColor];
textField.delegate = self;
[textField addTarget:self action:@selector(tfRditingDidBegin) forControlEvents:UIControlEventEditingDidBegin];
[textField addTarget:self action:@selector(tfRditingDidEnd) forControlEvents:UIControlEventEditingDidEnd];
[textField addTarget:self action:@selector(tfRditingDidChanged) forControlEvents:UIControlEventEditingChanged];
[self.view addSubview:textField];
- 代理
// textField开始编辑
- (void)textFieldDidBeginEditing:(UITextField *)textField{
NSLog(@"开始编辑");
}
// textField结束编辑
- (void)textFieldDidEndEditing:(UITextField *)textField{
NSLog(@"结束编辑");
}
// textField文字改变
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSLog(@"用户输入的文字%@",string);
NSLog(@"代理方式监听文字发生改变");
return YES; //YES允许用户输入 NO禁止用户输入
}
// 点击空白收起键盘
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
[self.view endEditing:YES];
// [self.textField resignFirstResponder];
// [self.textField endEditing:YES];
}
- addTarget方式
-(void)tfRditingDidBegin{
NSLog(@"这是点击事件监听的开始编辑");
}
-(void)tfRditingDidEnd{
NSLog(@"这是点击事件监听的结束编辑");
}
-(void)tfRditingDidChanged{
NSLog(@"这是点击事件监听的文字修改");
}
- 顶部选择器
UISegmentedControl *s = [[UISegmentedControl alloc]initWithItems:@[@"123",@"456",@"789"]];
s.center = CGPointMake(self.view.frame.size.width/2, 260); //位置
s.selectedSegmentIndex = 1; //默认选中第几个
[s addTarget:self action:@selector(sClick:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview: s];
//顶部选择器触发事件
-(void)sClick:(UISegmentedControl *)s{
NSLog(@"%d",s.selectedSegmentIndex);
}