IOS UIButton扩展(控制图片和文件的显示位子、防重复点击、控制点击间隔)

UIButton 点击热区的扩大 前言最近在做一个新项目,由于换了一个美工,自己也有些疏忽,致使一些按钮的图片大小不太合适,后期也没有时间让其去重做了,为了使界面和用户体验兼得,上网收集了一些扩大UIButton的点击热区的方法。现在已了解的方法有: - 自定义Button(透明Button遮罩) - 自定义Button(重写Button的内部方法)(推荐*) 阅读详情

//
//  UIButton+ZXLExtension.h
//  ZXLUtils
//
//  Created by 张小龙 on 2018/5/28.
//  Copyright © 2018年 张小龙. All rights reserved.
//

#import  <UIKit/UIKit.h>

/**
 UIButton 控制图片和文件的显示位子

 - ZXLButtonEdgeInsetsStyleTop:  image在上,label在下
 - ZXLButtonEdgeInsetsStyleLeft:  image在左,label在右
 - ZXLButtonEdgeInsetsStyleBottom: image在下,label在上
 - ZXLButtonEdgeInsetsStyleRight: image在右,label在左
 */
typedef NS_ENUM(NSUInteger, ZXLButtonEdgeInsetsStyle) {
    ZXLButtonEdgeInsetsStyleTop,
    ZXLButtonEdgeInsetsStyleLeft,
    ZXLButtonEdgeInsetsStyleBottom,
    ZXLButtonEdgeInsetsStyleRight
};

@interface UIButton (ZXLExtension)

/**
 按钮防重点击间隔时间 (默认时间间隔 1.0)
 */
@property (nonatomic, assign) NSTimeInterval eventInterval;

/**
 *  设置button的titleLabel和imageView的布局样式,及间距
 *  (注:此函数一定要在button 的title 和image 设置完成后使用)
 *  @param style titleLabel和imageView的布局样式
 *  @param space titleLabel和imageView的间距
 */
- (void)layoutButtonWithEdgeInsetsStyle:(ZXLButtonEdgeInsetsStyle)style
                             buttonSize:(CGSize)bsize
                              imageSize:(CGSize)size
                        imageTitleSpace:(CGFloat)space;
@end

代码传送门 用的好给个star

iOS防止按钮重复点击扩展类 1.直接添加工程中即可使用. 2.在需要使用的地方 引入头文件即可. 3.在持续更新中,因为按钮重复点击可能会引起其他操作bug,如拍照按钮无法点击之类的问题, 目前只能发先一个解决一个. 立即下载

相关推荐

ios-超强UIButton封装(持续更新中....).zip

* 自定义图片上下左右位置 * 自定义文字和图片间距 * 自定义角标动画 * 支持CocoaPods github地址: https://github.com/JunAILiang/JMButton 简书地址: https://www.jianshu.com/p/ba8e986cdd0c 我的博客地址: https://www.ljmvip.cn

UIButton自定义图片文字位置总结

UIButton的默认显示样式是图片居左,文字居右,如下图1: 但是有时候我们根据需求需要调整按钮中图片和标题的位置,最常见的就是图片居上,文字居下显示的按钮,如下图2所示: 实现这种居中显示的图上文下的按钮方式有很多,比如最简单的方法:自定义View,上面放一个UIButton一个UILabel子控件。 这里我们介绍其他方法来实现UIButton图片和标题的位置调整: 一种是通过类别(Ca...

weixin_33974433的博客 461

NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty()

Please use torch.nn.Module.to_empty() instead of torch.nn.Module.to()输出(llama) (base) [root@localhost home]# nvidia-smi Unable to determine the device handle for GPU0000:09:00.0: Unknown Error。这是典型的“孤儿进程”,但它还是。(僵尸进程),占用 GPU 资源。如果进程仍然不消失,并且。,这意味着它的父进程是。

m0_61636632的博客 2096

iOS给UIButton的扩展

// // UIButton+Common.h // XiaoYaoUser // // Created by 黄仪标 on 14/12/4. // Copyright (c) 2014年 xiaoyaor. All rights reserved. // #import @interface UIButton (Common) /*! * 设置按钮正常状态下的图片 */ -

标哥 3292

倍福TC3 PLC高速采集实战:如何用PLC-Recorder实现0.24ms级时间戳同步

本文详细介绍了倍福TC3 PLC与PLC-Recorder实现0.24ms级时间戳同步的工程实践方案。通过硬件拓扑设计、时间源选择优化、报文结构封装及同步验证方法,为工业自动化领域的高精度数据采集提供了可靠解决方案,特别适用于精密装配、激光切割等微秒级同步要求的场景。

weixin_29193359的博客 372

VirtualBox虚拟机上ubuntu系统安装问题记:显示画面太小、启动就异常退出等

报错:Failed to load R0 module D:/VMMR0.r0: The path is not clean of leading double slashes: ‘D:/VMMR0.r0’ (VERR_SUPLIB_PATH_NOT_CLEAN).解决方法特别简单,就是安装VIrtualBox的时候不要安装在CDE等盘根目录下。首先VirtualBox的下载安装过程是比较简单的,此处就不赘述了。然后E盘下新建个目录,安装到这个目录下就可解决。

qq_42595610的博客 2825

iOS给UIView添加常用的Extension

iOS给UIView添加常用的Extension

moses的博客 1701

【BlueDroid】【BLE】低功耗蓝牙客户端和服务端开发流程解析(超详细)

1. 精讲):SPP/A2DP/AVRCP/HFP/PBAP/IAP2/HID/MAP/OPP/PAN/GATTC/GATTS/HOGP等协议理论2. 欢迎大家关注和订阅,和专栏会持续更新中.....敬请期待!

风云说通信 1925

IOS 自定义tabbar,并给tabbar按钮加载网络图片

// // MainTabbarController.h // WXMovie // // Created by mac on 15/3/2. // Copyright (c) 2015年 mac. All rights reserved. // #import @interface MainTabbarController : UITabBarController @end

甜吖~的博客 1907

改进YOLOv9的CT图像肺结节检测与分类算法:从原理到实战

本文将详细介绍如何改进YOLOv9算法,使其更好地适应CT图像肺结节检测与分类任务。我们将从数据集准备、模型改进、训练优化到最终部署,完整呈现一个端到端的深度学习项目,并提供完整的代码实现。

YOLO 188

Trae辅助开发完全教程:从入门到企业级实战

《Trae AI IDE完全教程》系统介绍了这款AI驱动的下一代集成开发环境。教程从基础入门到实战应用,详细讲解了Trae的双重开发模式(IDE/SOLO)、智能编程助手CUE、行内对话、模型管理等核心功能。内容包括环境配置、项目创建、Python开发示例,以及RPC框架和iOS应用两个实战案例。Trae通过深度整合AI技术,显著提升编码效率,支持多种编程语言和主流模型,适合从新手到企业级开发者的不同需求。本教程帮助开发者快速掌握Trae的使用技巧,实现AI辅助下的高效编程。

MrLi的博客 764

RxSwift之UI控件UIButton与UIBarButtonItem扩展的使用

一、点击事件响应 如果想实现点击按钮后,弹出一个消息提示框: 示例代码: import UIKit import RxSwift import RxCocoa class ViewController: UIViewController { let disposeBag = DisposeBag() @IBOutlet weak var button: UIButton! override func viewDidLoad() {

╰つ栺尖篴夢ゞ 2051

YOLOv11 改进 - 主干网络| 清华大学CloFormer AttnConv :利用共享权重和上下文感知权重增强局部感知,注意力机制与卷积的完美融合

本文介绍了轻量级视觉变换器CloFormer及其核心模块AttnConv在YOLOv11中的结合应用。为解决视觉变换器缩小到移动设备友好尺寸时性能下降的问题,提出CloFormer,其引入AttnConv操作符。AttnConv融合共享权重和上下文感知权重,先通过深度卷积提取局部表示,再用上下文感知权重增强特征,还结合传统注意力减少FLOPs,使模型感知高频和低频信息。我们将AttnConv集成进YOLOv11,实验表明,CloFormer在多个视觉任务中表现优越,改进后的YOLOv11也取得了良好实验结果

魔改工程师的博客 989

系列:iOS开发-从扩展UIButton到自定义控件

系列:iOS开发-从扩展UIButton到自定义控件我们在做iOS开发的时候,往往要制作一些跟系统控件不一样的自定义控件, 比如我们会定义一个图片在上面,文字在下面的按钮, 比如我们会定义一个复杂的控件,有点击,有长按,有拖拽等手势…往往我们就会想到使用系统已经有的控件来做二次封装 当然自己封装控件就会有很多的方式, 比如实现的效果大致的是一个按钮,那么我们就会采用继承UIButton的方式,

spicyShrimp的博客 2366

java零基础从入门到精通(全)

目录前言1. 入门知识1.1 java体系1.2 JDK/JRE/JVM区别1.3 编译与运行理解1.4 类体函数细节2. 标识符 前言 java优势 健壮性(JVM(C++语言写的一个虚拟的计算机)、GC(垃圾回收机制)) 多线程并发 可移植性/跨平台 1. 入门知识 1.1 java体系 JavaSE:标准版 JavaEE:企业版 JavaME:微型版 1.2 JDK/JRE/JVM区别 JVM是不能独立安装的。 JRE和JDK都是可以独立安装的 层层嵌套,jvm包括jdk,jdk包括jre

码农研究僧的博客 6万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

iOS-UIButton分类扩展(封装)

UIButton+BackgroundColor.h #import <UIKit/UIKit.h>@interface UIButton (BackgroundColor)- (void)setBackgroundColor:(UIColor *)backgroundColor forState:(UIControlState)state;@end UIButto...

Watchmen0320的博客 303

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

iOS 按钮图文显示(UIButton扩展类)

#import <UIKit/UIKit.h> NS_ASSUME_NONNULL_BEGIN @interface UIButton (Gradient) //图片在上 - (void)setIconInTopWithSpacing:(CGFloat)Spacing; //图片在左 - (void)setIconInLeftWithSpacing:(CGFloat)Spaci...

xiaoxiaobaibaicai的博客 632

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

关于IOS某图片添加控件,图片从相册或拍照保存后,再次进入时点击放大图无法显示的问题...

某图片添加控件: https://github.com/XZTLLQ/LQPhotoPickerDemo 问题: 标题已说明 代码块: NSArray *alAssetUrl =(NSMutableArray *)[HiddenRecordDataService getLocalImageSystemFilePath:_hiddenDangerInfoLocalModel.Hidde...

weixin_34247155的博客 290

uibutton设置网络图片

#import 在方法中调用: [self xr_setButtonImageWithUrl:categoryImageArr[i] sender:typeBtn]; - (void)xr_setButtonImageWithUrl:(NSString *)urlStr sender:(UIButton *)sender {                   

Marvel博客 2609

iOS_UIButton 实现button的内容左对齐以及图片和标题中间的间隔

要实现一个类似折叠效果的按钮  不多说 直接上代码和效果 - (void)createButton { UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 55)]; button.backgroundColor = [UIColor o

GZgengzhen的博客 5842

iOS UIButton 扩大点击区域,按钮内部文字和切图布局调整

#import <UIKit/UIKit.h> typedef void (^TouchedBlock)(UIButton *btn); typedef NS_ENUM(NSUInteger, SSButtonEdgeInsetsStyle) { SSButtonEdgeInsetsStyleTop, // image在上,label在下 SSButtonEdgeInsetsStyleLeft, // image在左,label在右 SSButtonEdgeInset

疯狂的程序猿的博客 2200

UIButton 扩大按钮的响应区域

第一种方法:创建一个类目:UIButton+EnlargeTouchArea ,用类方法进行调用 使用方法: 导入UIButton+EnlargeTouchArea.h UIButton *button = [UIButton new]; [button setEnlargeEdge:20]; 或:[button setEnlargeEdgeWithTop:20 right:20 bot

孟宪亮的技术博客 7758

[iOS]详解调整UIButton的title和image的位置

很多次,系统默认的UIButton不能满足需求,每次都是查了很多资料,最后还是用最复杂的方式来修改button的标题和图片的位置,今天,花些时间来梳理一下这方面的知识... UIButton的默认布局是:title在右,image在左; 很多时候我们需要的是title在左边,或者title在下面,这时就需要调整UIButton的TitleLabel和ImageView的位置了,查了很多

流火緋瞳的博客 4万+

iOS 按钮添加gif

NSString *filePath = [[NSBundle bundleWithPath:[[NSBundle mainBundle] bundlePath]]pathForResource:@"fileName" ofType:@"gif"]; NSData *imageData = [NSData dataWithContentsOfFile:filePath]; UIImage *gif...

qq_25978611的博客 2662

iOS 一行代码搞定button 图文左右

iOS UIButton图片文字排版顺序iOS-UIButton的文本与图片的布局重写button按钮*setTitleEdgeInsets*和*setImageEdgeInsets*方法利用UIView属性中的:semanticContentAttributeSDAutoLayout给button重新布局 iOS-UIButton的文本与图片的布局 UIButton内部文本和图片的布局是我们日常...

仰望星空的博客 2003

UIButton的一个extension扩展

extension UIButton { func centerVertically(padding: CGFloat = 6.0) { guard let imageViewSize = self.imageView?.frame.size, let titleLabelSize = self.titleLabel?.frame.size else { ...

SoftwareDoger的博客 454
上一篇: IOS NSString字符串扩展(链接正则检测、是否包含表情、名字判断、手机号判断、邮箱判断等)
下一篇: IOS NSDate 扩展(自定义日历、日期对比、今天判断、昨天判断、本周判断、本月判断等)
蟒蛇_AutoFire
博客等级 码龄16年 21粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值