ios开发收藏按钮_即刻APP收藏按钮的实现
前不久即刻更新到了2.0,整体 UI 虽然朴实了不少,但也不乏一些精致的效果,比如收藏按钮,效果如下,代码已上传github
实现这个效果需要三个元素
最下层利用 maskLayer 创造一个爱心形状的 View
中间层添加一个镂空的 ImageView 用于显示爱心边框
最上层需要一个用于显示填充动画的View
maskLayer 这里就不过多介绍了,如果用代码创建一个爱心形状的 maskLayer 也未免太麻烦,
虽然有paintcode这样的工具存在,所以直接用图片创建 maskLayer 是最佳方案:
- (void)setMaskImage:(UIImage *)maskImage{
_maskImage = maskImage;
if (!_maskLayer) {
self.maskLayer = [CALayer layer];
self.maskLayer.frame = CGRectMake(0,0, _maskImage.size.width, _maskImage.size.height);
self.layer.mask = _maskLayer;// 必须设置frame
}
self.maskLayer.contents = (id)[_maskImage CGImage];
}
这里也验证下即刻是用图片创建 maskLayer 的事实,从 ipa 包中提取 Assets.car 文件,实际上这个文件就是Images.xcassets,
但是 Mac 上不能直接打开,所以就需要用到ThemeEngine工具,浏览里面的内容就可以找到:
很显然第一张图片就是用于创建 maskLayer,另一张就是用于第二个元素的创建,只需要简单的添加一个 Iamgeview
- (void)setBorderImage:(UIImage *)borderImage{
_borderImage = borderImage;
if (!_borderImageView) {
self.borderImageView = [[UIImageView alloc] init];
self.borderImageView.frame = CGRectMake(0,0, _borderImage.size.width, _borderImage.size.height);
[self addSubview:_borderImageView];
}
self.borderImageView.image = _borderImage;
[self sendSubviewToBack:_borderImageView];
}
最后,利用 setFillColor 方法创建 fillView,设置 transform 来配合之后的动画
- (void)setFillColor:(UIColor *)fillColor{
_fillColor = fillColor;
if (!_fillView) {
self.fillView = [[UIView alloc] initWithFrame:self.bounds];
self.fillView.layer.cornerRadius = self.bounds.size.width * 0.5f;
self.fillView.transform = CGAffineTransformMakeScale(0, 0);
[self addSubview:_fillView];
}
self.fillView.backgroundColor = _fillColor;
}
ios开发收藏按钮_即刻APP收藏按钮的实现相关推荐
- 基于XCode IOS开发系统实现的新闻APP设计
一.项目概述 1.1 项目介绍 本次课程设计所实现的新闻阅读APP是基于XCode IOS开发系统上开发的一款可以查看,收藏以及删除新闻的一款IOS应用软件.它有着启动界面.登录界面,在输入正确的账号 ...
- ios开发 mvp实践_实践中开发人员的工作流程-我们如何在30天内建立MVP
ios开发 mvp实践 by Léna Faure 莱娜·福雷(LénaFaure) 实践中开发人员的工作流程-我们如何在30天内建立MVP (The developer's workflow i ...
- 原生开发什么意思_成都APP开发:原生APP开发与Web APP开发有什么区别呢?
智能手机上的APP应用软件对于人们来说已经成为日常工作生活当中必不可少的工具,无论是工作生活中的聊天交流,购物,饮食,出行,娱乐都会有相应的APP软件.目前常见的APP软件开发模式有两种,一种是原生A ...
- IOS开发高手课第二篇 App 启动速度怎么做优化与监控?
02 | App 启动速度怎么做优化与监控? 我已经在专栏的第一篇文章中,和你梳理了一份 iOS 开发的知识体系框架图.今天,我们就正式从基础出发,开始自己的 iOS 开发知识体系构建之路吧.接下来, ...
- 即刻APP收藏按钮的实现
前不久即刻更新到了2.0,整体 UI 虽然朴实了不少,但也不乏一些精致的效果,比如收藏按钮,效果如下,代码已上传github 实现这个效果需要三个元素 最下层利用 maskLayer 创造一个爱心形状 ...
- jquery实现app开发闹钟功能_商城app开发价格及功能列表
商城app开发需要多少钱?如何快速开发商城的app呢?现在随着移动互联网开发技术的进步,不需要找专业的app开发公司,不需要等专业开发技术,使用应用公园app在线制作平台,自己能快速制作商城app的. ...
- iOS开发调试技巧之在App设置中切换服务器环境
在日常的App开发中,会有正式服务器与测试服务器两种不同的环境,调试或测试时经常需要在不同的环境中切换. 在使用Xcode调试时,可能需要运行两次以测试不同的服务器环境,而在打包测试时,则需要导出两个 ...
- ios开发闹钟源代码_开源源码让短视频的开发变得更加便捷
对外开放源码(开源系统源代码)指的是该源代码的软件著作使用者将其所拥有的初始码公布,容许大家应用.改动发售的手机软件或设计方案体. 刚开始朋友会感觉"开源系统源代码"这一专有名词与 ...
- iOS开发基础:最新的APP打包上架流程
之前有人留言让我更新部分文章,下面就为大家分享一下iOS的APP打包上架流程: 上传至apple developer 1.1 上传准备工作 更新上架和发布上架不同,在原始版本首次上架的时候就将描述文件 ...
- ios开发 静音键设置_苹果手机静音键怎么设置
大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 苹果手机机身左侧的上方有静音键按钮,向下拨动即可静音,此外用户可以进入手机的"系统设置"中设置静音模式. iP ...
最新文章
- pytorch lstm crf 代码理解
- UVA1103分区涂色+vc使用注意事项
- python concat函数 多张表_教你用python递归函数求n的阶乘,优缺点及递归次数设置方式
- 中文分词词性对照表(转)
- P2597 [ZJOI2012]灾难(倍增LCA+拓扑排序)
- 系出名门Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab
- Google Guava BiMaps
- 订单拣选作业模式总结
- [转载]windows2003上IIS+PyISAPIe1.1..0部署成功
- 快速排序-超级详细代码注释!
- KCP - A Fast and Reliable ARQ Protocol
- android多个单选按钮互斥使用,在GUI设计中,单选按钮用来实现用户在多个选项中的互斥选择,在同一组内多个选项中只能选择一个,当...
- Mac下安装第三方模块报错:‘sqlfront.h‘ file not found的解决办法
- 基于javaweb的晚会抽奖系统(java+jdbc+servlet+ajax+mysql)
- 零基础H5小游戏傻瓜教程_教您如何制作微信小游戏
- 『解疑』vue修改html图标,tilte左边的图标(以图片格式作为图标)
- Arc consistency in CSPs
- JavaEE:HTML
- 三线一单”大气环境质量底线体系与划分技术方法
- php实现支付宝扫码付