前言

网上看到一个button的长按控件效果不错,一个菱形从中间向两边增大,研究了下

原理

上图红色是控件上面放了视图,从上到下分别是view,normalLable,highlightLabel,button

其中View是顺时针旋转了45度

通过点击控件触发里面的按钮的监听事件

按下没有松手:增大view的高度,改变两个label的透明度

抬起 :缩小view的高度,改变两个label的透明度

后面设置超出父视图不显示就可以把多余的黑色隐藏了,实现了中心向外面扩散

部分代码:

长按监听

 - (void)buttonTouchDownAndDragEnter {
NSLog(@"长按不松"); [self removeShowViewAndLabelLayer];
[UIView animateWithDuration:(self.toEndDuration <= ? TIME_END_DURATION : self.toEndDuration)
animations:^{
[self showShowView];
} completion:^(BOOL finished) {
if (finished == YES) {
self.isEND = YES;
}
}];
}

部分方法

- (void)showShowView {
self.showView.bounds = CGRectMake(, , SHOW_VIEW_WIDTH,
(self.animationWidth <= ? SHOW_VIEW_WIDTH : self.animationWidth));
self.showView.alpha = ; self.normalLabel.alpha = .f;
self.highlightLabel.alpha = .f; } //隐藏showView,改变普通和高亮状态 - (void)hiddenShowView {
self.showView.bounds = CGRectMake(, , SHOW_VIEW_WIDTH, );
self.showView.alpha = ; self.normalLabel.alpha = .f;
self.highlightLabel.alpha = .f; } //移除之前的动画
- (void)removeShowViewAndLabelLayer {
self.showView.bounds = ((CALayer *)self.showView.layer.presentationLayer).bounds;
self.showView.alpha = ((CALayer *)self.showView.layer.presentationLayer).opacity; self.normalLabel.alpha = ((CALayer *)self.normalLabel.layer.presentationLayer).opacity;
self.highlightLabel.alpha = ((CALayer *)self.highlightLabel.layer.presentationLayer).opacity; // 移除之前的动画状态
[self.showView.layer removeAllAnimations];
}

demo链接:http://pan.baidu.com/s/1eRckm4q

iOS长按控件的更多相关文章

  1. 无比迅速敏捷地开发iOS超精美控件

    目录 前言 设计 编码 PaintCode 前言 自从人生第一篇博客<iOS中的预编译指令的初步探究>问世以来 浏览量竟然达到了360多,(路过的大神勿笑!)这些浏览量使我兴奋异常但又令我 ...

  2. 从0到1搭建移动App功能自动化测试平台(2):操作iOS应用的控件

    转自:http://debugtalk.com/post/build-app-automated-test-platform-from-0-to-1-Appium-interrogate-iOS-UI ...

  3. iOS基础UI控件介绍-Swift版

    iOS基础UI控件总结 iOS基础控件包括以下几类: 1.继承自NSObject:(暂列为控件) UIColor //颜色 UIImage //图像 2.继承自UIView: 只能相应手势UIGest ...

  4. Android-PickerView【仿iOS的PickerView控件,并封装了时间选择和选项选择这两种选择器】使用

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 本文主要演示Android-PickerView的选项选择器.时间选择器的简单运用.由于每一个版本略有不用,所以实际使用方式以git ...

  5. TYAttributedLabel——简单,强大的iOS属性文本控件

    本文转载至 http://www.mobile-open.com/2015/86578.html TYAttributedLabel 简单,强大的属性文本的控件(无需了解CoreText),支持图文混 ...

  6. IOS的各种控件(转载,防止遗忘)

    UITextView控件的详细讲解 感觉写的相当不错,而且很全就直接转载了 1.创建并初始化 创建UITextView的文件,并在.h文件中写入如下代码: #import <UIKit/UIKi ...

  7. IOS自定义日历控件的简单实现(附思想及过程)

    因为程序要求要插入一个日历控件,该空间的要求是从当天开始及以后的六个月内的日历,上网查资料基本上都说只要获取两个条件(当月第一天周几和本月一共有多少天)就可以实现一个简单的日历,剩下的靠自己的简单逻辑 ...

  8. Android 实现 IOS相机滑动控件

     IOS相比于Android,动画效果是一方面优势,IOS相机切换时滑动的动画很不错,看着是有一个3D的效果,而且变化感觉很自然.Android也可以通过Graphics下面的Camera可以实现3D ...

  9. 如何自定义iOS中的控件

    本文译自 How to build a custom control in iOS .大家要是有什么问题,可以直接在 twitter 上联系原作者,当然也可以在最后的评论中回复我. 在开发过程中,有时 ...

随机推荐

  1. {ubuntu}乱七八糟重命名为1 2 3.....png

    i=; for f in *.png; do mv "$f" ${i}.png; ((i++)); done 网上找了个测试的数据集,发现读取时候,要重命名一下 一片帖子问了类似的 ...

  2. Windows系统下Android开发环境搭建

    “工具善其事,必先利其器”.要想学好Android,搭建好Android开发环境是一个良好的开端. Windows系统下Android开发环境主要有4个大的步骤.分别是: 1.JDK的安装 2.ecl ...

  3. SQL问题:未启用当前数据库的 SQL Server Service Broker

    数据库分离后,附加回到数据库,然后在程序中打开调用数据库的页面,出现如下问题:“未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持.如果希望使用通知,请为此数 ...

  4. (六)maven之本地仓库

     本地仓库 ①    运行机制: 当用户在pom.xml文件中添加依赖jar包时,maven会先从本地仓库查找,如果这个jar包在本地仓库中找不到,就从中央仓库下载到本地仓库,中央仓库是maven默认 ...

  5. Python 学习日志9月18日

    今天早晨学习了<Head First HTML and CSS>,第10章“div and span”. 看完并且做了练习也算是对div和span扫了个盲,需要在实践练习中加强理解与掌握. ...

  6. mysql 存在更新,不存在插入

    String sql = "insert into wb_result " + "values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ...

  7. Javascript根据指定下标或对象删除数组元素

    删除数组元素在工作中经常会用到,本文讲解一下Javascript根据下标删除数组元素的方法,需要了解的朋友可以参考下 将一下代码放在全局js文件中: Js代码 /** *删除数组指定下标或指定对象 * ...

  8. Python协程函数

    1 协程函数 1.1 协程函数理解 协程函数就是使用了yield表达式形式的生成器 def eater(name): print("%s eat food" %name) whil ...

  9. github+hexo+themes搭建简易个性主题博客

    0x00  install Node.js and git 安装Node.js:http://www.runoob.com/nodejs/nodejs-install-setup.html 安装git ...

  10. WPF显示尺寸与设备无关问题

    WPF单位 WPF窗口以及其中的所有元素都是用与设备无关的单位进行度量.一个与设备无关的单位被定义为1/96英寸.WPF程序统一用下面一个公式来定义物理单位尺寸: [ 物理单位尺寸(像素)] = [ ...