CKShapeView 支持CAShapeLayer

https://github.com/conradev/CKShapeView

CKShapeView is a UIView subclass that is backed by a CAShapeLayer.

In other words, it is a view that is capable of rendering an arbitrary CGPath.

It is completely configurable and animatable, so you can have custom drawn views without needing to subclass.

CKShapeView has all of the properties of CAShapeLayer, with the addition of a hitTestUsingPath property that allows you to hit test using the path instead of the view's bounds.

CKShapeView是一个UIView的子类,它支持CAShapeLayer。

换句话说,它是一个view,可以用来渲染CGPath。

我完全配置了它并可以动画化,所以,你可以直接定制这个view而不需要继承至它的子类。

CKShapeView有着CAShapeLayer的所有属性,我添加了一个额外的属性hitTestUsingPath,允许你使用路径来做点击测试而不是这个view的bounds。

Example Usage

CKShapeView *pieView = [[CKShapeView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
CGFloat width = CGRectGetWidth(pieView.bounds);
pieView.path = [UIBezierPath bezierPathWithOvalInRect:CGRectInset(pieView.bounds, width/4, width/4)];
pieView.lineWidth = width/2;
pieView.fillColor = nil;
pieView.strokeColor = [UIColor blackColor];
[self.view addSubview:pieView]; UIViewAnimationOptions options = UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat;
[UIView animateWithDuration:1.0f delay:0.0f options:options animations:^{
pieView.strokeEnd = 0.0f;
} completion:nil];

[翻译] CKShapeView 支持CAShapeLayer的更多相关文章

  1. 利用有道翻译Api实现英文翻译功能

    有道翻译提供了翻译和查词的数据接口.通过数据接口,您可以获得一段文本的翻译结果或者查词结果.       通过调用有道翻译API数据接口,您可以在您的网站或应用中更灵活地定制翻译和查词功能. 第一步: ...

  2. Chrome划词翻译-Saladict

    Saladict 沙拉查词是一款专业划词翻译扩展,为交叉阅读而生.大量权威词典涵盖中英日韩法德西语,支持复杂的 划词操作.网页翻译.生词本.PDF,以及 Vimium 全键盘操作 . 迄今为止最好用的 ...

  3. 申请百度翻译API

    申请百度翻译API 0x00 前期准备 百度账号 md5的相关知识 0x01 进入百度开放平台,登录你的百度账号 找到 产品服务 -> 通用翻译API 0x02 点击下面的立即使用按钮,注册成为 ...

  4. Python(九)Tornado web 框架

    一.简介 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过 ...

  5. tornado web 框架的认识

    tornado 简介 1,概述 Tornado就是我们在 FriendFeed 的 Web 服务器及其常用工具的开源版本.Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的 ...

  6. 将centos7打造成桌面系统

    前言以下所有操作默认在root权限下执行,桌面环境是kde,使用gnome的也可以参考一下.我收集的以下要用到的一些安装包,360网盘http://yunpan.cn/csMhBAp92vTgN 提取 ...

  7. 2014年7月份第3周51Aspx源码发布详情

    Froor高校校园网站源码  2014-7-18 [VS2010]源码介绍:这是一款有关高校门户网站的毕业设计源码,功能相对比较完善,界面也比较美观,对门户网站感兴趣的朋友们可以下载研究一下.该源码功 ...

  8. 英语学习app分析

    以下数据分析由队员张波收集整理队员链接 队友的博客 一.数据统计 为了让统计数据更加准确可信,我们选取了三款android平台的应用市场软件作为数据的来源. 英语学习app下载量统计表: 序号 应用名 ...

  9. being词典案例分析

    一.调研评测: 1.软件bug: 1.输入空格分号回车之后并不给用户报错,说明他的异常处理机制有问题. 2.对于中文的很多口头语和方言,并不能给出翻译或者说,也并没有给出网络搜索后的结果. 3.添加生 ...

随机推荐

  1. 下划线css

    /* <div class="text">header</div> */ .text { /* 作用元素 */ display: inline-block; ...

  2. 【LOJ】#2016. 「SCOI2016」美味

    题解 做了一下SCOI2015,于是决定搬运SCOI2016= v = 如果没有加法,我们可以向左向右节点查找 每个总权值是2^18 - 1,然后左右分,那么每次是一个完整的节点 如果有了加法,那么我 ...

  3. pyqt5最简单的打开和保存文件

    import sys import os from PyQt5.QtWidgets import QApplication,QWidget,QFileDialog from t import Ui_F ...

  4. HTML5实战与剖析之跨文档消息传递(iframe传递信息)

    在来自不同域名的页面间传递消息一般统称为跨文档消息传送,简称XDM.如,www.leemagnum.com域中的页面与位于一个内嵌框架中的http://blog.csdn.net/lee_magnum ...

  5. elementUI 学习入门之 checkbox 复选框

    CheckBox 复选框 与单选框基本类似.如:按钮样式.带边框.复选框按钮大小. eg: <template> <el-checkbox-group v-model="s ...

  6. Python并发编程-事件,红绿灯控制

    事件用来控制多个进程同时执行或者阻塞 set和clear 分别用来修改一个事件的状态,True或者False is_set 用来查看一个事件的状态 wait 是依据事件的状态来决定自己是否在wait处 ...

  7. Django Restframework 实践(二)

    按照自己的方法来写接口 ''' @api_view([ 'POST','GET',]) 允许请求的是get或post方法,这里去掉get那么就不能用get方法请求 @permission_classe ...

  8. Divisible by Seven CodeForces - 376C (数论)

    You have number a, whose decimal representation quite luckily contains digits 1, 6, 8, 9. Rearrange ...

  9. 「UOJ218」火车管理

    「UOJ218」火车管理 解题思路:观察发现,在弹出 \(x\) 之前,它前面这个元素都是保持不变的,所以可以用一棵可持久化线段树维护每一个栈顶元素的插入时间,每次找到当前时间\(-1\) 的版本就可 ...

  10. 51nod1218 最长递增子序列 V2

    看见标签推荐顺便就做了吧 记$f[i], g[i]$为$i$的含$i$的前缀最长递增子序列和后缀递增子序列 只要满足$f[i] + g[i] == LIS + 1$,那么$i$就是可能的 对于$i$而 ...