UIButton基础以及使用block+UIButton处理点击事件
// UIButton * btn = [[UIButton alloc] init];//custom类型,一般不使用//UIButtonTypeSystem 只能得到图片的轮廓,不能得到纹理UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];//不能这么设置按钮颜色
// btn.titleLabel.text = @"123";/*ypedef NS_OPTIONS(NSUInteger, UIControlState) {UIControlStateNormal = 0, // 常规状态显现UIControlStateHighlighted = 1 << 0, // 高亮状态显现UIControlStateDisabled = 1 << 1, // 禁用的状态才会显现UIControlStateSelected = 1 << 2, // 选中状态UIControlStateApplication = 0x00FF0000, // 当应用程序标志时UIControlStateReserved = 0xFF000000 //为内部框架预留// 后两个可以不管他};*/[btn setTitle:@"正常按钮" forState:UIControlStateNormal];[btn setTitle:@"高亮状态" forState:UIControlStateHighlighted];[btn setTitle:@"禁用状态" forState:UIControlStateDisabled];[btn setTitle:@"选中状态" forState:UIControlStateSelected];[btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];[btn setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];[btn setTitleColor:[UIColor greenColor] forState:UIControlStateDisabled];[btn setTitleColor:[UIColor magentaColor] forState:UIControlStateSelected];[btn setImage:[UIImage imageNamed:@"apply_sex_normal"] forState:UIControlStateNormal];[btn setImage:[UIImage imageNamed:@"apply_sex_selected"] forState:UIControlStateSelected];[btn setBackgroundImage:[UIImage imageNamed:@"beijing"] forState:UIControlStateSelected];btn.backgroundColor = [UIColor grayColor];//设置字体btn.titleLabel.font = [UIFont systemFontOfSize:20];// NSDictionary * dict = @{NSFontAttributeName:[UIFont systemFontOfSize:30]};
// NSAttributedString * att = [[NSAttributedString alloc] initWithString:@"Attributed" attributes:dict];
//
// [btn setAttributedTitle:att forState:UIControlStateNormal];//tintColor只有在systemtype时有效,tintColor是子视图及以上视图的颜色。
// btn.tintColor = [UIColor orangeColor];//开启禁用状态
// btn.enabled = NO;//开启选中状态
// btn.selected = YES;/*iOS UIButton事件:UIControlEventTouchDown单点触摸按下事件:用户点触屏幕,或者又有新手指落下的时候。UIControlEventTouchDownRepeat多点触摸按下事件,点触计数大于1:用户按下第二、三、或第四根手指的时候。UIControlEventTouchDragInside当一次触摸在控件窗口内拖动时。UIControlEventTouchDragOutside当一次触摸在控件窗口之外拖动时。UIControlEventTouchDragEnter当一次触摸从控件窗口之外拖动到内部时。UIControlEventTouchDragExit当一次触摸从控件窗口内部拖动到外部时。UIControlEventTouchUpInside所有在控件之内触摸抬起事件。UIControlEventTouchUpOutside所有在控件之外触摸抬起事件(点触必须开始与控件内部才会发送通知)。UIControlEventTouchCancel所有触摸取消事件,即一次触摸因为放上了太多手指而被取消,或者被上锁或者电话呼叫打断。UIControlEventTouchChanged当控件的值发生改变时,发送通知。用于滑块、分段控件、以及其他取值的控件。你可以配置滑块控件何时发送通知,在滑块被放下时发送,或者在被拖动时发送。UIControlEventEditingDidBegin当文本控件中开始编辑时发送通知。UIControlEventEditingChanged当文本控件中的文本被改变时发送通知。UIControlEventEditingDidEnd当文本控件中编辑结束时发送通知。UIControlEventEditingDidOnExit当文本控件内通过按下回车键(或等价行为)结束编辑时,发送通知。UIControlEventAlltouchEvents通知所有触摸事件。UIControlEventAllEditingEvents通知所有关于文本编辑的事件。UIControlEventAllEvents通知所有事件。*///添加响应事件[btn addTarget:self action:@selector(doAction:) forControlEvents:UIControlEventTouchUpInside];// [btn removeTarget:self action:@selector(doAction:) forControlEvents:UIControlEventTouchUpInside];// [btn addTarget:self action:@selector(doAction2) forControlEvents:UIControlEventTouchUpOutside];
// [btn addTarget:self action:@selector(doAction3) forControlEvents:UIControlEventAllTouchEvents];// btn.contentEdgeInsets = UIEdgeInsetsMake(50, 50, 50, 50);btn.titleEdgeInsets = UIEdgeInsetsMake(50, 0, 0, 100);btn.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0);//点击按钮有光照效果
// btn.showsTouchWhenHighlighted = YES;//高亮状态按钮颜色是否变深btn.adjustsImageWhenHighlighted = NO;btn.frame = CGRectMake(100, 100, 200, 200);[self.view addSubview:btn];
UIButton使用block重写点击事件
1 buttonBlock.h
#import <UIKit/UIKit.h>typedef void(^Block)(UIButton * button);@interface BlockButton : UIButton@property (nonatomic, copy) Block block;@end
2 buttonBlock
#import "BlockButton.h"@implementation BlockButton- (instancetype)initWithFrame:(CGRect)frame
{self = [super initWithFrame:frame];if (self) {[self addTarget:self action:@selector(doAction:) forControlEvents:UIControlEventTouchUpInside];}return self;
}- (void)doAction:(UIButton *)button {self.block(button);
}@end
3 在ViewController.m里面调用
#import "ViewController.h"
#import "BlockButton.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];BlockButton * btn = [BlockButton buttonWithType:UIButtonTypeCustom];btn.frame = CGRectMake(100, 100, 100, 100);[btn setTitle:@"点我" forState:UIControlStateNormal];[btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];btn.block = ^(UIButton * button) {NSLog(@"%@",button);};[self.view addSubview:btn];}
UIButton基础以及使用block+UIButton处理点击事件相关推荐
- Qt5基础 背景图,绘图,点击事件
Qt5基础系列 Qt基础的学习笔记.此文章为在B站上学习黑马程序员Qt教程的绘图部分做的记录,加深理解,方便回看. 目录 Qt5基础系列 一.简介 二.绘图 1.头文件 2.引入api 3.相关参数定 ...
- UIButton防止按钮和手势的暴力点击
首先理解下几个概念 1.IMP:它是指向一个方法具体实现的指针,每一个方法都有一个对应的IMP,当你发起一个消息之后,最终它会执行的那段代码,就是由IMP这个函数指针指向了这个方法实现的 2.SEL: ...
- iOS UITapGestureRecognizer手势和UIButton 以及UITabelView点击事件冲突
一:在同一个view上加载,UITapGestureRecognizer手势,UIButton 行为,UITabelView点击事件冲突: 二:解决方式: 在UITapGesttureRecogniz ...
- [Swift]最强UIButton解析 | #selector()绑定点击事件
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- swift3 按钮触发事件_swift5.3 UIView 与 UIButton 点击事件传递参数
UIView 与 UIbutton 点击事件的参数传递:目前我通过 tag 解决了 UIButton 的点击参数传递 设置 UIButton 的 tag,详细见代码let playButton = U ...
- [Swift]代码触发UIButton的点击事件
使用极光的手机号码一键登录功能,要求点击按钮后先弹出协议同意,同意协议后自动改变底部协议状态再自动代码触发登录按钮的点击事件. OC: [but sendActionsForControlEvents ...
- ios基础考试题1,实现按钮点击改变位置和图片的透明度和动画的使用
ios基础考试题1,实现按钮点击改变位置和图片的透明度和动画的使用 考察frame,center,bounds的坐标,改变,动画的使用,图片容器的UIImageView的透明度等知识 oc写法 // ...
- android 表格控件点击事件,Android零基础入门|RecyclerView点击事件处理
原标题:Android零基础入门|RecyclerView点击事件处理 前面两期学习了RecyclerView的简单使用,并为其item添加了分割线.在实际运用中,无论是List还是Grid效果,基本 ...
- Javascript语法基础之按钮点击事件
Hello everyone,This is Kaylee. 这是一篇简单的JS语法基础内容,是在我学习过程中,比较难以记忆的知识点,我将搭配案例详解展示给大家,通过这种方式可以加深记忆,方便应用. ...
- UIImageView 响应UIButton的点击事件
设置userInteractionEnabled 属性为 Yes: 转载于:https://www.cnblogs.com/qianyindichang/p/3792894.html
最新文章
- 飞书与IAI国际广告奖,协同实现国内营销史上的创新“云终审”
- 一、网络爬虫----爬取豆瓣网前250条数据
- 详解云原生机器学习平台的优势
- Smart Link
- css线条伸缩_伸缩布局(CSS3)
- nginx php-fpm 输出php错误日志(转)
- 前端加按钮将图片另存为_Windows 10系统如何将自己的照片制作成文件夹图标
- 微盟合作,重磅推出全免费的H5专业营销平台,快速创建第一个H5活动(捷微H5)
- SocketAsyncEventArgs
- python怎么返回上一行代码_Python实现判断一行代码是否为注释的方法
- 转:复杂网络分析总结
- 创建生成级联上级字符的函数
- python聊天室详细教程_Python基础教程书籍案例:在线聊天室(虚拟茶话会)【下】...
- 5、OC —— @property和@synthesize
- Linux_ppc下软件包安装,LINUX2000PPC安装手册
- python计算iv值_大数据技术 python计算IV值及使用
- cad沿线插入块 lisp_AutoCAD导出块名和块插入点列表(AutoLISP源码)——好用的AutoCAD块统计工具...
- ue4 源码编译 虚拟内存不足 堆限制
- linux 存储映射lun 给_LINUX系统下添加映射存储LUN(无需重启)
- 读 Linux 像读小说「GitHub 热点速览 v.22.03」
热门文章
- python操作jira修改status及写入comment
- Eclipse设置运行内存大小
- 队列——数据结构严蔚敏C语言版
- 华为认证: 高级redhat例题及答案
- 2022年湖南省中医执业医师考试第三单元医学针灸学模拟题
- nofollow标签的写法与作用
- 在windows和Linux上安装ImageMagick与jmagick,Maven配置、Java图片压缩代码(整理网上、结合自己情况、编写出来的新安装方式)
- Springboot实现邮箱验证码注册、找回密码和登录功能
- 水下机器人 结构设计
- matlab胡良剑第五章,matlab数学实验第一至第四章答案(胡良剑)