按钮⽆无需释放(因为使⽤用的是类方法创建的button)
解决不同形态下的外观
//创建不同类型的按钮
// UIButton *button1 = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
// UIButton *button1 = [UIButton buttonWithType:UIButtonTypeSystem];
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeContactAdd];
[self.window addSubview:button1];
//给按钮一个frame
[button1 setFrame:CGRectMake(70, 70, 100, 10)];
//给按钮添加文本并设置什么时候显示文本
[button1 setTitle:@"按钮" forState:UIControlStateNormal];
//添加颜色
[button1 setTitleColor:[UIColor cyanColor] forState:UIControlStateNormal];
//绑定事件
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
[button setFrame:CGRectMake(20, 120, 50, 30)];
[self.window addSubview:button];
[button setTitle:@"点击" forState:UIControlStateNormal];
[button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
//给按钮添加方法 (:是方法名的一部分)
[button addTarget:self action:@selector(buttonCilck:) forControlEvents:UIControlEventTouchUpInside];
[containButton addTarget:self action:@selector(send) forControlEvents:UIControlEventTouchUpInside];
//移除按钮的点击事件
[containButton removeTarget:self action:@selector(send) forControlEvents:UIControlEventTouchUpInside];
//键盘上的return如何添加方法
//1.声明遵守TextField的代理协议 2,将某个UITextField设置成代理
return YES;
}
//按钮响应方法 sender:消息的发送者
- (void)buttonCilck:(id)sender
{
NSLog(@"%s", __func__);
NSLog(@"%@", sender);
lable.text = field.text;
//键盘回收
[field resignFirstResponder];
}
- (void)send
{
[field resignFirstResponder];
}
点击按钮没反应的情况:
1.按钮是否关联事件
2.其父视图的useruserInteractionEnabled是否是默认为YES
3.是否点击到按钮
4.按钮超出了父视图的范围,子视图不接受交互
5.按钮是否被覆盖