iOS实现图片六边形阴影效果

2025-05-29 0 66

先来看看效果图

iOS实现图片六边形阴影效果

这个效果写起来挺简单,主要运用下面几个知识点

layer mask : 图层蒙版

layer shadowpath : 绘制自定义形状阴影

uibezierpath :绘制六边形路线

说完知识点下面上代码了

绘制六边形的路线

?

1

2

3

4

5

6

7

8

9

10

11

12

13
-(cgpathref)getcgpath:(cgfloat)viewwidth{

uibezierpath * path = [uibezierpath bezierpath];

path.linewidth = 2;

[[uicolor whitecolor] setstroke];

[path movetopoint:cgpointmake((sin(m_1_pi / 180 * 60)) * (viewwidth / 2), (viewwidth / 4))];

[path addlinetopoint:cgpointmake((viewwidth / 2), 0)];

[path addlinetopoint:cgpointmake(viewwidth - ((sin(m_1_pi / 180 * 60)) * (viewwidth / 2)), (viewwidth / 4))];

[path addlinetopoint:cgpointmake(viewwidth - ((sin(m_1_pi / 180 * 60)) * (viewwidth / 2)), (viewwidth / 2) + (viewwidth / 4))];

[path addlinetopoint:cgpointmake((viewwidth / 2), viewwidth)];

[path addlinetopoint:cgpointmake((sin(m_1_pi / 180 * 60)) * (viewwidth / 2), (viewwidth / 2) + (viewwidth / 4))];

[path closepath];

return path.cgpath;

}

绘制一个六边形的layer,并把image 赋值到contents

?

1

2

3

4

5

6

7

8

9

10
cgrect hexagnorect = self.bounds;

//绘制一个六边形的layer,并复制一个image给他的contents

calayer *hexagonlayer = [calayer layer];

hexagonlayer.frame = hexagnorect;

cashapelayer * shaplayer = [cashapelayer layer];

shaplayer.linewidth = 1;

shaplayer.strokecolor = [uicolor whitecolor].cgcolor;

shaplayer.path = [self getcgpath:hexagnorect.size.width-20];

hexagonlayer.mask = shaplayer;

hexagonlayer.contents = (__bridge id _nullable)(self.image.cgimage);

创建一个calayer,将六边形layer 添加到calayer上,并绘制模糊阴影

?

1

2

3

4

5

6

7

8

9
calayer *completelayer = [calayer layer];

completelayer.frame = cgrectmake(10, 10, self.bounds.size.width-10, self.bounds.size.height-10);

[completelayer addsublayer:hexagonlayer];

completelayer.shadowopacity = 1.0f;

completelayer.shadowpath = [self getcgpath:hexagnorect.size.width];

completelayer.shadowoffset = cgsizemake(-10, -10);

completelayer.shadowcolor = self.hg_shadowcolor.cgcolor;

[self.layer addsublayer:completelayer];

总结

好了,以上就是在ios中实现图片六边形的全部内容了,希望本文能对大家开发ios有所帮助,如果有疑问大家可以留言交流。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 iOS实现图片六边形阴影效果 https://www.kuaiidc.com/92406.html

相关文章

发表评论
暂无评论