UIButton 的全面解析 建议收藏,用到的时候来这里一查就都明白了 //初始化Button 不用alloca init 的方法 用便利构造器初始化 UIButton *button = [UIButton...,图像的颜色是否要加深一点。...默认是YES @property(nonatomic) BOOL adjustsImageWhenDisabled; 按钮禁用的情况下,图像的颜色是否要加深一点。...(6_0); /* forState: 这个参数的作用是定义按钮的文字或图片在何种状态下才会显现*/ 以下是几种状态 enum { UIControlStateNormal = 0, 常规状态显现...UIControlEventValueChanged // 当控件的值发生改变时,发送通知。用于滑块、分段控件、以及其他取值的控件。
#import @interface UIButton (MutableTitle) /** * 根据添加的title 改变 button 的长度 * * @...NSString *)text textFont:(UIFont *)textFont forState:(UIControlState)UIControlState; @end #import "UIButton...+MutableTitle.h" @implementation UIButton (MutableTitle) - (void)setMutableTitleWithString:(NSString...maxSize lineBreakMode:NSLineBreakByCharWrapping]; } return textSize; } @end 使用时 导入头文件 #import "UIButton...+MutableTitle.h" UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100, 40)]; button.center
https://blog.csdn.net/u010105969/article/details/79877908 背景: 在项目中的一个网页中有一个“换一换”按钮,点击更换页面上的书籍。...在原生页面也有一个“换一换”按钮,该按钮样式和功能都和网页中的“换一换”按钮一样。两者不同的是点击网页中的“换一换”按钮,按钮上的图片会有一个360度旋转的动画效果,而原生的没有任何效果。...为了统一,要求在点击原生的“换一换”按钮时,上面的图片也有一个360度动画旋转效果。...代码: - (void)changeAction:(UIButton *)changeBtn{ CABasicAnimation* rotationAnimation; rotationAnimation
https://blog.csdn.net/u010105969/article/details/52840728 在设置UIButton的图片的时候发现有两个方法setBackgroundImage...和 setImage,之前并没有发现两者有太大的区别(使用setBackgroundImage后设置title没问题,使用setImage后设置的title会被挡住),因为项目中使用的带有图片的按钮几乎没有文字...而哪些带有文字的按钮也没有什么特殊的图片,于是会不使用图片。所以本人一直使用的setBackgroundImage。 可在使用这个方法的时候有一个问题,按钮的大小必须和图片大小一样,不然图片会拉伸。...于是我每次都会将按钮的大小设置成按钮要使用的图片的大小。可这样设置了之后,有些按钮上的图片会比较小,这样点击区域就回比较小,从而给用户带来不是很好的体验效果。...而在使用了setImage这个方法之后发现按钮上的图片并不会发生拉伸,而是居中显示在按钮上,这正是我项目中所要的效果。于是决定在今后项目中更多地去使用setImage方法。
iOS的UIButton是一个非常常见而且常用的控件,我们一般用他来实现某个功能的提交以及选择操作。...事件总是能找到解决方法的, 有的人会先建立一个按钮控件铺在下面,而在上面分别覆盖一个UIImageView和UILabel来实现;而有的人则干脆在UIButton上建立一个UIImageView和UILabel...两个子视图;而有的人则不会用UIButton来实现图文结合的功能。...答案是否定的,其实UIButton本身是可以支持各种图文结合的,既然UIButton上能同时显示图片和文字,那就可以肯定的说UIButton里面本身一定有一个UIImageView和UILabel8子视图...,我想应该可以满足您的需求了,如果这些图文结合的样式还是无法满足您的需求时则您还是别用UIButton了。
UIButton的用处特别多,这里只记录下把按钮应用在图文显示的场景,和需要把图片作为按钮的背景图片显示场景; 另外记录下在父控件的子控件优先显示方法(控件置于最前面和置于最后面)。...1、当在某个地方既需要显示图片,还需要显示文字,另外还要有点击功能的时候,这时按钮是个很好的选择。 按钮中的图片和文字的距离可以自由调整,图片的也可以上下左右翻转。...但是有时候,产品要求显示的按钮左右必须是圆形的,这时候虽然可以让ui切个适配的图片做背景,其实针对如果是背景图片是纯色的话,我们可以利用 控件的layer.masksToBounds, 和layer.cornerRadius...下面写了五个橙色背景的按钮作比较:背景图片和按钮尺寸匹配的、背景图片和按钮尺寸或偏大或偏小的、处理背景图片让背景图片自适应按钮的、不用背景图片使用图层来设置按钮左右圆形的: /** 测试给按钮设置背景图片...[self addMoveImgAndTextButton]; //添加图文并茂的按钮,测试按钮上的图文移动 [self addBackgroundImgButton]; //添加设置背景图片的按钮
UIButton一般分为高亮的普通两种状态,原生的方法可以设置这两种不同状态下的文字颜色,文字内容,背景图片,按钮图片。但是不能设置按钮的背景色。...方法一:通过按钮的事件来设置背景色 - (void)viewDidLoad { [super viewDidLoad]; UIButton *button1 = [[UIButton...- (void)button1BackGroundNormal:(UIButton *)sender { sender.backgroundColor = [UIColor orangeColor...]; } // button1高亮状态下的背景色 - (void)button1BackGroundHighlighted:(UIButton *)sender { sender.backgroundColor...]; UIButton *button2 = [[UIButton alloc] initWithFrame:CGRectMake(170, 200, 100, 50)];
当然这只是一款软件,一种情况,所谓防小人不妨君子,我们需要更安全的键盘 当前网上的许多键盘都是通过 UIButton 堆起来,这样事件控制方便,title 设置便利,UI设计简易,不用考虑触摸事件等等诸多好处...,官方的键盘在安全性方面是相当高的 自定义键盘 参考官方的键盘,写出了自己的自定义键盘,也是底层图片实现,监控触摸事件 没有安全只有更安全,这里自定义键盘只是相对于 UIButton 堆积起来的键盘,.../** 本库主要是为了实现一个自定义键盘 所有的按键均是图片组成,最大程度上避免了恶意监控控件(UIButton,UILabel)等,防止获取键盘内容 所有的事件均通过手指(触摸)的移动,来控制按键变化...触摸事件回调频率高,并且触摸事件中没有数据,最大程度上避免了恶意监控触摸事件,最大程度上避免了恶意监控控件(UIButton,UILabel 此键盘功能是建立在平台的思想上开发的。...身份证号键盘 源码在 我的github 上 【注】请使用 Swift 3 运行
那只好上证据了~ // 设置语音按钮的高亮图片 voiceButton.setImage(#imageLiteral(resourceName: "message_voice_sender_normal..."), for: .highlighted) 那知道原因之后就很好解决了 解决方案 方案一:设置按钮的高亮图片 将按钮的高亮图片与普通状态下的一致即可。...这里就再赘述了 方案二:adjustsImageWhenHighlighted = false 在UIButton中有这么一个属性 adjustsImageWhenHighlighted 查看官方文档的说明...并且该值的默认值为true 所以我们也可以将属性adjustsImageWhenHighlighted设置为false,不让系统自动帮我们设置高亮状态下显示的图片即可。
大家好,又见面了,我是你们的朋友全栈君。...ios事件-触摸事件3(UIButton 和 pointInSide()、hitTest()、touchesBegan()、touchesMoved()、touchesEnded()、touchesCancelled...pointInSide()、hitTest()的关系:在button的hitTest()中返回button实例,这个button才能响应事件 2、button不同事件的识别,也是通过touchesBegan...: #import @interface MyButton : UIButton @end //--------分隔符,分隔.h文件和.m文件-------------...,在本例中调用的是ButtonVC(监听对象)的clicka: withEvent:方法(监听方法)。
UIButtonTypeInfoDark, 暗色感叹号 // UIButtonTypeContactAdd, 十字加号按钮 // } UIButtonType; //给定button在view上的位置...是否在dealloc中对UIButton对象进行release操作,取决于UIButton初始化的方式。...文字的显示位置,字体的大小 今天遇到个很简单的几个问题,关于UIButton的,以前没有很注意,就是设置它的文字的显示位置,字体的大小。...//设置按钮上的自体的大小 //[btn setFont: [UIFont systemFontSize: 14.0]]; //这种可以用来设置字体的大小,但是可能会在将来的SDK版本中去除改方法...设置UIButton上字体的颜色设置UIButton上字体的颜色,不是用: [btn.titleLabel setTextColor:[UIColorblackColor]]; btn.titleLabel.textColor
背景需求 模块子视图functionView中的lineButton懒加载方法添加一次事件,专门设置本按钮的isSelected状态。...外面一层的VC中为lineButton再添加一次事件,专门设置按钮点击后要执行的逻辑事件。...addTarget:self action:@selector(linespacePlus) forControlEvents:UIControlEventTouchUpInside]; 执行结果 两次添加的事件均可执行...事件执行的顺序为添加事件的顺序。 本次实验中,视图模块functionView中因为先执行懒加载,所以这里面是先添加的事件,先执行。外面VC是后调用的,所以后添加的事件,后执行。
上的图片和文字位置调整 http://blog.csdn.net/yongyinmg/article/details/8566365 UIButton中setTitleEdgeInsets和setImageEdgeInsets...1.1.6.1 网上代码1 iOS - UIButton(UIEdgeInsets)/设置button上的文字和图片上下垂直居中对齐 http://doc.okbase.net/willingYaTou...setImage: [UIImage imageNamed: @"IconHome@2x.png"] forState: UIControlStateNormal]; //设置image在button上的位置...,最终解决了在图片和文字垂直排列的情况下,如果文字长度变化会导致图片位置变动的问题,最开始采用了网上比较多的做法,做法如下: @interface UIButton (UIButtonExt) - (...(UIEdgeInsets)/设置button上的文字和图片上下垂直居中对齐 http://doc.okbase.net/willingYaTou/archive/38295.html UIButton
介绍 WWDC 2019 推出了上下文菜单(Context Menus)成为 3DTouch 的替代品。 需要通过长按方式触发。...如果要启用上下文菜单,需要创建一个 UIContextMenuInteraction 并将其添加给某个触发的 UIView,然后指定 delegate,实现代理方法。...interaction) } } // 代理方法 extension ViewController: UIContextMenuInteractionDelegate { func contextMenuInteraction...UITableView和UICollectionView iOS 13 以后,UITableView 和 UICollectionView 也支持 Context Menus,使用起来特别简单,只需要实现相应的代理方法
上码!!!!...#import typedef void(^ButtonBlock)(UIButton* btn); @interface UIButton (Block) /**...void)addAction:(ButtonBlock)block; /** * button 添加事件 * * @param block * @param controlEvents 点击的方式...UIControlEventTouchUpInside]; } /** * button 添加事件 * * @param block * @param controlEvents 点击的方式...NSLog(@"我被点名了"); } forControlEvents:UIControlEventTouchUpInside]; O了,喜欢的走心哦...
在使用 extension 扩展现有类的功能时,使用Associated Object的方式,可以将一个值 “关联” 到已有的要扩展的类上。该知识点在 iOS 开发中使用往往能优雅地解决很多问题。.../// 设置关联值 /// - Parameter object: 同上 /// - Parameter key: 同上 /// - Parameter value: 关联的对象,具体的关联的值 ///...注意 AssociateKeys中出现了一个奇怪的写法,这里的key的类型声明为了 Void?...((UIButton)->Void){ block(button) } } } UIButton 传参 项目开发中,经常会有类似九宫格的菜单按钮,每个按钮的点击时的参数是不一样的...,此时可以有如下几种方案: 创建 9 个按钮,逐一设置 通过 for 创建 9 个 UIButton,为 UIButton设置不同的tag,然后在点击事件里面用 switch case判断 自定义UIButton
1、CALayer 1)、在ios中,能看得见摸得着的东西基本上都是UIView, 比如按钮、文本标签、文本输入框、图标等,这些都是UIView 2)、UIView之所以能显示在屏幕上,完全是因为它内部的一个图层...retain) CALayer *layer; 4)、当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,于是就完成了...CALayer上的,并非UIView 4)、CAAnimation继承结构,紫色虚线表示继承自某类,红色虚线表示遵守某个协议 : ?...: 默认为YES, 代表动画执行完毕后就从图层上移除,图形会恢复到动画执行前的状态。...但是实质上, 图层的属性值还是动画执行前的初始值,并没有真正的被改变 11)、CAKeyframeAnimation --- 关键帧动画 关键帧动画,也是CAPropertyAnimation
由于编码的时候大多数时候使用Xib,但是偶尔利用纯代码创建控件的时候,觉得很麻烦,很多属性需要设置,于是在Git上搜索一个开源库FuncControl 觉得还可以,如果您有好用一点的开源库也请分享一下!..."UILabel_FuncChains") .func_backgroundColor([UIColor yellowColor]); [self.view addSubview:label]; 创建UIButton...原生写法 UIButton *buttonOrigin = [[UIButton alloc]init]; buttonOrigin.frame = CGRectMake(15, 150, self.view.frame.size.width...buttonClick) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:buttonOrigin]; 简化写法 UIButton...*button = UIButton.func_init.func_frame(CGRectMake(15, 150, self.view.frame.size.width-15, 50)) .func_gradientHorizontalColor
类别是在现有类基础上,不改动现有的代码,增加新的功能。但是不能增加新的实例变量,但是可以通过runtime增加属性。 解释这么多,说的都有点累。 什么时候用类别呢?...如果想给已经封装好的类添加方法 比如给UIButton添加一个异步下载图片的方法可以使用分类。...比如我们要增加的方法需要实例变量很多 里面要用到很多的实例变量来执行逻辑 那么我们做好的选择是选择继承 下面是例子 #import @interface UIButton.../这个在制作frameWork的时候经常的用到 在framework他的作用于和@protected一样,在外部和@private一样的 比如UIButton用@package声明的变量只能在framework..."UIButton+Category.h" @implementation UIButton (Category) -(void)method{ NSLog(@"这是Class1的代理方法
领取专属 10元无门槛券
手把手带您无忧上云