iOS修改button的点击范围
一般来说,按钮的点击范围是跟按钮的大小一样的。若按钮很小时,想增大点击区域,网上通用的方法有
①设置btn图片setImage,然后将btn的size设置的比图片大
②在btn上添加一个比较大的透明btn
但以上有问题,若btn无图片就无法设置;添加透明btn则会改变view的层级。所以此时最好的方法是重写btn的
-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event;
方法。例如:
-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{
//当前btn大小
CGRect btnBounds = self.bounds;
//扩大点击区域,想缩小就将-10设为正值
btnBounds = CGRectInset(btnBounds, -, -);
//若点击的点在新的bounds里,就返回YES
return CGRectContainsPoint(btnBounds, point);
}
对CGRectInset的解释
CGRectInset(CGRect rect, CGFloat dx, CGFloat dy)作用是将rect坐标按照(dx,dy)进行平移,对size进行如下变换
新宽度 = 原宽度 - 2*dx;新高度 = 原高度 - 2*dy
即dx,dy为正,则为缩小点击范围;dx,dy为负的话,则为扩大范围
UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(, , , )];
[self.view addSubview:view1]; CGRect rect2 = CGRectInset(view1.frame, , );
UIView *view2 = [[UIView alloc]initWithFrame:rect2];
[self.view addSubview:view2];
NSLog(@"%@",NSStringFromCGRect(rect2));
结果为
//{{110, 120}, {180, 160}}
比较这两个view的frame,即可印证该结论。
iOS修改button的点击范围的更多相关文章
- iOS防止button重复点击
项目中常会遇到在按钮的点击事件中去执行一些耗时操作.如果处理不当经常会出现连续多次点击push多次的情况,造成不好的用户体验. 一种情况是用户快速连续点击,这种情况无法避免.另一种情况是点击一次后响应 ...
- 修改button的可点击区域
需求:在cocos2dx引擎中,button的点击区域和button图片的大小是一样的,但是我需要修改可点击区域的大小和位置,需要修改引擎源码: button提供的接口中并没有和touch相关,but ...
- ios 添加到cell 上的button点击无效!扩大button的点击区域(黑魔法)
一般情况下点击效果都是正常的!要不然你对它做了什么?一般细心的小伙伴都没有遇到这种情况,但是呢! 当然我是二班的!在这里我主要讲两个问题,解决问题和普及魔法. 一.普及问题(button在cell上点 ...
- [转]iOS Safari 中click点击事件失效的解决办法
iOS Safari 中click点击事件失效的解决办法 问题起因: 在微信公众号开发(微站)过程中用jquery的live方法绑定的click事件点击无效(不能执行) 问题描述 当使用委托给一个元素 ...
- 同时屏蔽ios和android下点击元素时出现的阴影
在ios4+和android2+系统,当手指触摸屏幕a标签链接或按钮时,会产生不同的效果,对于ios点击元素的时候,就会出现一个半透明的灰色背景:对于android则出现红色的边框.对这2个系统自带的 ...
- EditText输入为空button不可点击搜索
一丶任务详情 二丶改动后演示效果 三丶改动过程 分析:非常明显这里是须要监听EditText,推断输入字符串长度是否不为0来改变Button样式 首先的屡清楚代码逻辑在适当的位子加监听推断是最好的处理 ...
- iOS 修改APP工程名字
我们在iOS开发中,难免会遇到项目做到一半要改名字的情况.如果项目名差的太大,工程名看起来总是不舒服的,就会想着为工程改个贴切的名字,那么你就为用到本文记录的内容. 如何修改工程名呢? 下面我就拿一个 ...
- IOS 修改UIAlertController的按钮标题的字体颜色,字号,内容
IOS 修改UIAlertController的按钮标题的字体颜色,字号,内容 UIAlertController *alertVC = [UIAlertController alertControl ...
- 移动web在ios和android下点击元素出现阴影问题
移动web开发经验总结 1.-webkit-tap-highlight-color:rgba(255,255,255,0)可以同时屏蔽ios和android下点击元素时出现的阴影.备注:transp ...
随机推荐
- iOS10 权限适配
权限适配 这应该算iOS10系统适配的范畴,最近这两个都在弄,所以就直接和Xcode8适配一起写出来了. 在iOS10之后需要在Info.plist中,添加新的字段获取权限,否则在iOS10上运行会导 ...
- 使用Asp.net WebAPI 快速构建后台数据接口
现在的互联网应用,无论是web应用,还是移动APP,基本都需要实现非常多的数据访问接口.其实对一些轻应用来说Asp.net WebAPI是一个很快捷简单并且易于维护的后台数据接口框架.下面我们来快速构 ...
- c#查找string数组的某一个值的索引
string[] array = { "A","B","C","D","H"}; var ind ...
- webconfig中注册HttpHandler报错:检测到在集成的托管管道模式下不适用的 ASP.NET 设置。
为什么会出现以上错误? 在IIS7的应用程序池有两种模式,一种是"集成模式",一种是"经典模式". 经典模式 则是我们以前习惯的IIS 6 的方式. 如果使用集 ...
- Android 打包
1.数字签名(指的是我们打包程序时所用keystore的SHA1指纹) 2.debug打包,不能在android 市场上架,使用的签名是默认的签名,1年后失效:release打包使用的是自己的签名,可 ...
- python常用库
本文由 伯乐在线 - 艾凌风 翻译,Namco 校稿.未经许可,禁止转载!英文出处:vinta.欢迎加入翻译组. Awesome Python ,这又是一个 Awesome XXX 系列的资源整理,由 ...
- SDcard
import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import ja ...
- SQL日期格式化应用大全
Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVE ...
- 转 Jmeter之Bean shell使用(二)
上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...
- mybatis - resultMap
resultMap有比较强大的自动映射,下面是摘自mybatis中文官网的的片段: 当自动映射查询结果时,MyBatis会获取sql返回的列名并在java类中查找相同名字的属性(忽略大小写). 这意味 ...