兴趣iOS

一张图片实现时钟(CALayer的contents)

2017-03-22  本文已影响17人  沧海的风

CALayer 有一个属性叫做contents,这个属性的类型被定义为id,意味着它可以是任何类型的对象。在这种情况下,你可以给contents属性赋任何值,你的app仍然能够编译通过。但是,在实践中,如果你给contents赋的不是CGImage,那么你得到的图层将是空白的。

CALayer的contentsRect属性允许我们在图层边框里显示寄宿图的一个子域。contentsRect不是按点来计算的,它使用了单位坐标,单位坐标指定在0到1之间,是一个相对值(像素和点就是绝对值)。所以他们是相对与寄宿图的尺寸的。默认的contentsRect是{0, 0, 1, 1},这意味着整个寄宿图默认都是可见的,如果我们指定一个小一点的矩形,图片就会被裁剪。

数字图

需求

用图上的数字来展示一个时钟。原理就是利用contentsRect来展示不同区域的数字。

关键代码

效果图

效果图.gif

demo 传送门

上一篇 下一篇

猜你喜欢

热点阅读