如何扩大button的点击区域

SwiftUI基础教程之如何解决点击无响应问题扩大选择区域Button(教程含源码) 实战需求 如果您尝试向某个视图(例如图像)添加交互,则视图内容周围的透明或透明部分可能无法响应用户的交互,例如点击。您可以使用内容形状修改器添加响应用户交互的形状(例如圆形或矩形) 本文价值与收获 看完本文后,您将能够作出下面的界面 基础知识 TapGesture 识别一个或多个轻击的手势。 struct TapGesture 总览 要识别视图上的轻击手势,请创建并配置该手势,然后使用修饰符将其添加到视图中。以下代码向添加了点击手势,以切换圆圈的颜色。 struct TapGesture 阅读详情

1、.h


@interface UIButton (HitAreaExpand)


@property (nonatomic) CGFloat minHitTestWidth;

@property (nonatomic) CGFloat minHitTestHeight;



@end



2、.m

#import "UIButton+HitAreaExpand.h"

#import <objc/runtime.h>

static char minHitTestWidthKey;

static char minHitTestHeightKey;

@implementation UIButton (HitAreaExpand)


- (CGFloat)minHitTestWidth {

    return [objc_getAssociatedObject(self, &minHitTestWidthKey) floatValue];

}


- (void)setMinHitTestWidth:(CGFloat)minHitTestWidth {

    objc_setAssociatedObject(self, &minHitTestWidthKey, [NSString stringWithFormat:@"%f",minHitTestWidth], OBJC_ASSOCIATION_COPY);

}


- (CGFloat)minHitTestHeight {

    return [objc_getAssociatedObject(self, &minHitTestHeightKey) floatValue];

}


- (void)setMinHitTestHeight:(CGFloat)minHitTestHeight {

    objc_setAssociatedObject(self, &minHitTestHeightKey, [NSString stringWithFormat:@"%f",minHitTestHeight], OBJC_ASSOCIATION_COPY);

}


- (BOOL)pointInside:(CGPoint)point withEvent:(nullable UIEvent *)event {

    

    return CGRectContainsPoint(HitTestingBounds(self.bounds, self.minHitTestWidth, self.minHitTestHeight), point);

}


CGRect HitTestingBounds(CGRect bounds, CGFloat minimumHitTestWidth, CGFloat minimumHitTestHeight) {

    

    CGRect hitTestingBounds = bounds;

    if (minimumHitTestWidth > bounds.size.width) {

        hitTestingBounds.size.width = minimumHitTestWidth;

        hitTestingBounds.origin.x -= (hitTestingBounds.size.width - bounds.size.width)/2;

    }

    if (minimumHitTestHeight > bounds.size.height) {

        hitTestingBounds.size.height = minimumHitTestHeight;

        hitTestingBounds.origin.y -= (hitTestingBounds.size.height - bounds.size.height)/2;

    }

    return hitTestingBounds;

}


@end


3、使用时举例

  _newsBtn = [[UIButton alloc]init];

        [_newsBtn setBackgroundImage:[UIImage imageNamed:@"Notification_Icon"] forState:UIControlStateNormal];

        //增大按钮热区域

        _newsBtn.minHitTestWidth = 44;

        _newsBtn.minHitTestHeight = 44;

        [_newsBtn addTarget:self action:@selector(clickNewsBtn) forControlEvents:UIControlEventTouchUpInside];

        [self addSubview:_newsBtn];

        [_newsBtn mas_makeConstraints:^(MASConstraintMaker *make) {

            make.right.equalTo(self.mas_right).offset(-76);

            make.centerY.equalTo(_settingBtn.mas_centerY);

            make.width.height.mas_equalTo(23);

        }];


Android自定义控件实现不规则区域点击事件 主要为大家详细介绍了Android自定义控件实现不规则区域点击事件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 立即下载

相关推荐

波动性GARCH模型与波动率预测(代码+结果分析)

本文介绍的ARCH、GARCH模型可以刻画出随时间变化的条件异方差。

celiaweiwei的博客 2万+

Android改变按钮的点击区域

假设我们要扩大Button的点击区域 一、你可以使用如下方式 <FrameLayout android:id="@+id/testClickArea" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="40dp" ...

songtao542的专栏 1565

群晖NAS断电后IP变了?3步搞定静态IP设置(附Linux挂载指南)

本文针对群晖NAS因断电重启导致IP地址变化的问题,提供了从根源到实践的完整解决方案。核心内容包括如何为NAS配置静态IP以彻底解决连接中断,并详细讲解了在Linux系统中通过NFS协议稳定挂载NAS共享文件夹的步骤与指南,确保网络存储服务持久可靠。

weixin_29271263的博客 851

android 点击热区,增大UIButton的点击热区

有两种方法可以处理这个问题:1.视图中UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];button.frame = CGRectMake(100, 100, 20, 20);button.backgroundColor = [UIColor yellowColor];[button addTarget:self ac...

weixin_33477290的博客 1152

基于Android13的系统启动流程分析(三)之FirstStageMain阶段

init进程是Android系统中用户空间的第一个进程,作为第一个进程,它被赋予了很多极其重要的工作职责,比如创建zygote(孵化器)和属性服务等。init进程是由多个源文件共同组成的,这些文件位于源码目录system/core/init1. Bootloader 引导当按下设备电源键时,最先运行的就是 bootloader(固化在ROM的程序),bootloader 的主要作用就是硬件设备(如 CPU、flash、内存)的初始化并加载到RAM,通过建立内存空间映射,为装载 Linux 内核做好准备,。

q1210249579的博客 5496

Python爬虫实战:用Selenium+ChromeDriver批量抓取政府网站政策文件(附完整代码)

本文详细介绍了使用Python的Selenium和ChromeDriver进行政府网站政策文件批量抓取的实战技巧。从环境配置、动态页面元素定位到分页机制破解和反爬虫策略,提供了完整的解决方案和代码示例,帮助开发者高效获取结构化政策数据。

weixin_42531710的博客 265

Android如何扩大按钮点击区域

注:这里实现的扩大按钮点击区域是使按钮的实际可点击区域大于我们所见的区域。 方法一:通过ImageView ImageButton实现                         android:layout_width="44dp"                 android:layout_height="44dp"                 android:b

c676063769的专栏 8005

OpenVPN 新增 windows 客户端

虚拟私人网络(Virtual Private Network,简称VPN)是一种网络技术,它允许用户通过公共网络(如互联网)建立一个安全的连接通道。本文介绍如何添加 windows 客户端。

利昂的技术存档 3765

Android 扩大按钮的点击范围

public static void setTouchDelegate(final View view, final int expandTouchWidth) { final View parentView = (View) view.getParent(); parentView.post(new Runnable() { @Override public void run() { ...

weixin_42630638的博客 1175

香橙派5Max + Realsense D435i + Fast-Drone-250:手把手教你搭建一个完整的无人机视觉开发环境

本文详细介绍了如何利用香橙派5Max、Realsense D435i深度相机和Fast-Drone-250项目搭建完整的无人机视觉开发环境。从硬件连接到ROS配置,再到项目部署与性能优化,提供全栈式实战指南,助力开发者快速实现SLAM算法验证和自主导航功能开发。

weixin_30879169的博客 460

Android AVB 分析(十六)5 个例子彻底理解 FEC(Reed-Solomon) 的工作原理

关于 FEC 是如何工作的,一直是我 Android OTA 讨论群中的未解话题,大家基本上都不清楚 Android 上面的 FEC 是如何工作的,为什么在 OTA 升级的最后阶段,FEC 的编码计算会消耗大量的 IO 资源,并持续很长时间。接下来的几篇,我会从一个程序员的角度,演示基于里德所罗门编码的 FEC 到底是如何工作的。

洛奇看世界 667

【VS Code插件开发】通用功能(二)

本篇主要从command(命令)、menus(菜单)、快捷键三个方面讲解,都归于通用功能。

编码世界 1万+

扩大Button按钮的点击区域

// //  UIButton+RM.h //  ProjectManageEx // //  Created by mac on 16/7/31. //  Copyright © 2016年 zhangjian01. All rights reserved. // #import @interface UIButton (RM) @property (nonatomic, assign)C

super_ZJ_iOS的博客 496

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

扩大Button的点击区域

Android——扩大ImageButton的点击区域 遭遇问题:在布局文件xml中定义了一个ImageButton,因为图标尺寸很小导致很难有效点击。      具体代码如下所示:       ImageButton android:id="@+id/imageButtonAlbum" android:layout_width="wrap_content" and

luohai859的专栏 9064

Android 保持图片大小,扩大button点击区域

button图片很小时,点击区域会很小,解决方法: 1、使用ImageButton代替Button。使用src加载图片,图片会保持大小加载。而用background加载会铺满按钮大小。然后此时可用padding等属性扩大按钮范围。 2、使用 android:scaleType="centerInside"保持图片大小,这个属性只适合ImageView控件 <ImageView ...

ihoudf 1136

Android CheckBox自定义样式和扩大点击区域

https://www.jianshu.com/p/01bdf4756884

wusejiege6的博客 1531

扩大CheckBox点击区域两种方法

扩大点击区域,首先想到的是加个padding,代码如下:&lt;CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:background="@android:co...

Dway 1万+

iOS扩大UIButton按钮的可点击区域

为什么80%的码农都做不了架构师?>>> ...

weixin_34293246的博客 301

扩大ImageButton响应点击区域的方法

视觉的切图是一个圆的小button图片,在实际开发的时候如果直接用button,然后把background设置为小图片,可能导致按钮的可点击区域太小,但是又不想去重写一个button,那么可以试一下以下的办法 设置一个ImageButton的属性: <ImageButton android:layout_width="37dp" a...

weixin_34148340的博客 212

微信小程序客服消息按钮太小解决方法contact-button

微信小程序客服消息按钮太小解决方法contact-button

qq_23064501的博客 1万+

IOS 不改变原图标增加button按钮的范围

1.设置button的image为你想设置的图片 2.增加buttonanniu

u013329151的专栏 477
上一篇: view上的定时器如何销毁
下一篇: 深入理解GCD
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值