自定义实现moveable button
实现的效果图:
自定义MVButton,继承自UIButton.
属性声明如下:
@property (nonatomic) CGPoint beginPoint;
@property (nonatomic) BOOL dragEnable;
//自定义button对触摸事件进行响应- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{//dragEnable = NO 则不响应动作if (!_dragEnable) {return;}UITouch *touch = [touches anyObject];//获取button的当前位置_beginPoint = [touch locationInView:self];
}
//拖动自定义button时响应- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{if (!_dragEnable) {return;}UITouch *touch = [touches anyObject];//获取要移动到的目标位置CGPoint nowPoint = [touch locationInView:self]; //确定目标位置与开始位置的偏移量float offsetX = nowPoint.x - _beginPoint.x;float offsetY = nowPoint.y - _beginPoint.x;//按照button的center属性移动buttonself.center = CGPointMake(self.center.x + offsetX, self.center.y + offsetY);
}
在ViewController.m中实现的代码如下:
首先导入自定义的button:
#import "MVButton.h"
具体实现:
- (void)viewDidLoad
{[super viewDidLoad];MVButton *mvButton = [[MVButton alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];mvButton.backgroundColor = [UIColor yellowColor];mvButton.dragEnable = YES;[self.view addSubview:mvButton];
}
转载于:https://www.cnblogs.com/wjq-Law/p/4132867.html
自定义实现moveable button相关推荐
- 自定义leftBarButtonItem的button
self.navigationItem.title=@"经销商查询"; UIButton * button = [UIButton buttonWithType:UIButtonT ...
- android button自定义样式详解,Android自定义格式显示Button的布局思路
先把来源贴上 http://www.dibbus.com/2011/02/gradient-buttons-for-android/ 然后再让大家看看效果,这些都是xml布局文件实现的,一张图片都未曾 ...
- IOS开发之自定义Button(集成三种回调模式)
前面在做东西的时候都用到了storyboard,在今天的代码中就纯手写代码自己用封装个Button.这个Button继承于UIView类,在封装的时候用上啦OC中的三种回调模式:目标动作回调,委托回调 ...
- 自定义的html radio button的样式
设计要求效果如下: 平时看到的radio button效果如下: 可以看出设计上图的radio button选中和没有选中的状态都有自定义的图片样式.但是我们使用radio button基本上都是需要 ...
- C#,桌面编程入门(01)——按钮Button属性与事件、动态创建、快捷键、控件数组及自定义Button
本文是<桌面编程入门>系列文章的开山之篇. <桌面编程入门>系列文章主要介绍桌面编程的各种组件,Button,ComboBox,Panel,WebBrowser...... 类 ...
- 自定义Button形状(圆形、椭圆) shape
2011-09-19 08:36 30147人阅读 评论(0) 收藏 举报 转自:http://blog.csdn.net/xyylchq/article/details/6788761 圆形 ...
- 自定义Button实现百分比宽度
自定义Button实现百分比宽度 大家都知道,在平常写布局的时候,有时候并不能确定Button的宽度.有时候会很难办,那时候想,如果能给这个Button设置屏幕的百分比就好了.下面我就带大家以Butt ...
- Android自定义ListView的Item无法响应OnItemClick的解决办法
转: 如果你的自定义ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView的Item能被选中的基础是它能获取Focus,也就 ...
- 关于listView的item失去焦点不能点击 Item中包含Button 导致抢占焦点
今天发现一个问题.listView的item点击以后进入到下一个页面,下个页面有个返回按钮,直接返回回去以后点击事件不能触发,滑动或者重新打开这个listView,就可以达到原来的效果.后来发现是因为 ...
最新文章
- Vue生命周期函数详解
- android获取未安装APK签名信息及MD5指纹
- php添加gd扩展,centos下为php添加gd扩展
- 基于 K8s 做应用发布的工具那么多, 阿里为啥选择灰姑娘般的 Tekton ?
- 阿里云PolarDB论文入选数据库顶会SIGMOD2021 最新一代架构领先世界
- 解决 Cmder 的光标跟文字有个间距 及常用配置
- 7-49 打印学生选课清单 (25 分)(思路+详解+map做法(一对多)+超时解决)Come baby!
- 我们处理了10亿个Java记录的错误-这是导致97%的错误的原因
- Java文件类字符串getAbsolutePath()方法(带示例)
- Shadow DOM的理解
- CrtmpServer 接收推送视频流 注册流基本流程
- 初窥Python(一)——使用pymongo连接MongoDB
- 学java用什么编译器_学习Java用什么编译软件好
- 因果推断-Uplift Model:Meta Learning
- 计算机连接不上蓝牙鼠标,蓝牙鼠标连接不上的解决方案
- QQ机器人{应用设计篇}
- 微信朋友圈点赞测试点【杭州多测师】【杭州多测师_王sir】
- OPENCV学习笔记 - SIFT 尺度不变特征变换 Python
- 【陈工笔记】# 同步网络和异步网络的理解 #
- 【Numpy学习笔记1】numpy安装、维度、基本运算、改变数据形态
热门文章
- vue 传递多行数据_vue父组件向子组件传递多个数据的实例
- 5gnr帧结构特点有哪些_真空离子束刻蚀设备的结构特点有哪些
- html页面加载完成后会触发的事件_前端隐秘角落 - 页面渲染
- 如何把svn代码拉下来,Maven - 从SVN拉取代码
- windows服务器系统免登录,Mac系统登录Windows服务器
- python3解释器执行not 1 and 1_编程语言的分类,python解释器多版本共存.执行python的两种方式,变量,用户与程序交互...
- js text 和 html,JS DOM innerText和textContent的区别
- mysql中创建唯一索引的关键字_mysql中唯一索引的关键字是什么
- NS3官方参考资料manual和tutorial
- 工业级光纤收发器入网说明