一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - IOS - iOS實(shí)現(xiàn)圖片六邊形陰影效果

iOS實(shí)現(xiàn)圖片六邊形陰影效果

2021-01-31 19:53等風(fēng)的旺旺 IOS

這篇文章給大家分享了如何利用iOS實(shí)現(xiàn)圖片六邊形陰影的效果,文中給出實(shí)現(xiàn)的示例代碼,對大家的理解和學(xué)習(xí)很有幫助,有需要的可以參考借鑒,下面來一起看看吧。

先來看看效果圖

iOS實(shí)現(xiàn)圖片六邊形陰影效果

這個效果寫起來挺簡單,主要運(yùn)用下面幾個知識點(diǎn)

     layer mask : 圖層蒙版

     layer shadowpath : 繪制自定義形狀陰影

     uibezierpath :繪制六邊形路線

說完知識點(diǎn)下面上代碼了

繪制六邊形的路線

?
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,并復(fù)制一個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);

創(chuàng)建一個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];

總結(jié)

好了,以上就是在ios中實(shí)現(xiàn)圖片六邊形的全部內(nèi)容了,希望本文能對大家開發(fā)ios有所幫助,如果有疑問大家可以留言交流。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: fc2免费人成为视频 eeuss18影院www国产 | 性欧美xxxxxxx另类 | 干b视频在线观看 | 日韩黄色录像 | 边摸边吃奶玩乳尖视频 | 日本成人高清视频 | 亚洲精品卡1卡二卡3卡四卡 | 国产精品久久久久久 | 婷婷综合久久中文字幕 | 欧美不卡一区二区三区 | 暖暖日本在线观看免费 | 亚洲视频在线观看免费 | 五月色婷婷久久综合 | 好吊色网站 | 免费观看欧美性一级 | 免费一级国产大片 | 亚洲AV久久久久久久无码 | 免费视频 | 果冻传媒 天美 麻豆 | 国精品午夜dy8888狼人 | 美女无遮挡| 色久网| 大妹子最新视频在线观看 | 四虎影视永久免费视频观看 | 精品综合一区二区三区 | 91久久国产综合精品 | 无码精品一区二区三区免费视频 | 精品99视频| 国产精品免费网站 | 天美麻豆| 日本三不卡 | 香蕉免费看一区二区三区 | 美女福利视频一区二区 | 国产精品29页 | 5151hh四虎国产精品 | 亚洲香蕉综合在人在线视看 | 99年水嫩漂亮粉嫩在线播放 | 国产成人免费a在线资源 | 女仆色在线观看 | 日韩精品欧美激情国产一区 | voyeur 中国女厕 亚洲女厕 |