最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IOS如何使用CAShapeLayer實現(xiàn)復雜的View的遮罩效果

 更新時間:2016年03月24日 15:53:18   作者:yixiangboy  
這篇文章主要為大家詳細介紹了IOS如何使用CAShapeLayer實現(xiàn)復雜的View的遮罩效果,感興趣的小伙伴們可以參考一下

一、案例演示
最近在整理一個聊天的項目的時候,發(fā)送圖片的時候,會有一個三角的指向效果,指向這張圖片的發(fā)送者。服務端返回給我們的圖片只是一張矩形的圖片,我們如何把一張矩形的圖片或者View,加上一層自定義遮罩效果,就是本文要講的內容。效果演示如下:第一張是一個View的遮罩效果,第二張是UIImageView的遮罩效果。

二、實現(xiàn)機制
在每一View的layer層中有一個mask屬性,他就是專門來設置該View的遮罩效果的。該mask本身也是一個layer層。我們只需要生成一個自定義的layer,然后覆蓋在需要遮罩的View上面即可。問題就歸于如何生成入上圖所示的不規(guī)則圖片的Layer。CAShapeLayer可以根據幾個點的依次連線,產生一個閉合空間的layer。如下圖所示:

三、實現(xiàn)代碼
實現(xiàn)方式為實現(xiàn)了CAShapeLayer的ViewMask的Category。

@implementation CAShapeLayer (ViewMask)

+ (instancetype)createMaskLayerWithView : (UIView *)view{

  CGFloat viewWidth = CGRectGetWidth(view.frame);
  CGFloat viewHeight = CGRectGetHeight(view.frame);

  CGFloat rightSpace = 10.;
  CGFloat topSpace = 15.;

  CGPoint point1 = CGPointMake(0, 0);
  CGPoint point2 = CGPointMake(viewWidth-rightSpace, 0);
  CGPoint point3 = CGPointMake(viewWidth-rightSpace, topSpace);
  CGPoint point4 = CGPointMake(viewWidth, topSpace);
  CGPoint point5 = CGPointMake(viewWidth-rightSpace, topSpace+10.);
  CGPoint point6 = CGPointMake(viewWidth-rightSpace, viewHeight);
  CGPoint point7 = CGPointMake(0, viewHeight);


  UIBezierPath *path = [UIBezierPath bezierPath];
  [path moveToPoint:point1];
  [path addLineToPoint:point2];
  [path addLineToPoint:point3];
  [path addLineToPoint:point4];
  [path addLineToPoint:point5];
  [path addLineToPoint:point6];
  [path addLineToPoint:point7];
  [path closePath];

  CAShapeLayer *layer = [CAShapeLayer layer];
  layer.path = path.CGPath;

  return layer;
}

@end

四、調用方式

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(40, 50, 80, 100)];
view.backgroundColor = [UIColor orangeColor];
[self.view addSubview:view];

CAShapeLayer *layer = [CAShapeLayer createMaskLayerWithView:view];
view.layer.mask = layer;

作者:yixiangboy
地址:http://blog.csdn.net/yixiangboy/article/details/50485250

以上就是本文的全部內容,希望對大家學習IOS程序設計有所幫助。

相關文章

  • iOS自定義選擇框代碼分享

    iOS自定義選擇框代碼分享

    這篇文章主要為大家分享了iOS自定義選擇框的實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • ios實現(xiàn)app強制更新功能

    ios實現(xiàn)app強制更新功能

    本篇文章主要介紹了ios實現(xiàn)app強制更新功能,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • iOS開發(fā)商品頁中banner中點擊查看圖片

    iOS開發(fā)商品頁中banner中點擊查看圖片

    本文文章給大家列出了關于iOS開發(fā)商品頁中banner中點擊查看圖片功能源碼,有興趣的朋友參考下吧。
    2018-02-02
  • iOS開發(fā)輸入自動填充UITextField背景色

    iOS開發(fā)輸入自動填充UITextField背景色

    如何在iOS中實現(xiàn)輸入時自動填充背景色的效果,首先,我們設置UITextField的背景色為初始顏色,然后,通過設置UITextField的代理,并監(jiān)聽UITextField的輸入事件,我們在用戶開始輸入時將其背景色改變?yōu)楦吡令伾?在用戶結束輸入時恢復為初始顏色
    2023-10-10
  • IOS正則表達式之驗證密碼身份證手機號

    IOS正則表達式之驗證密碼身份證手機號

    這篇文章主要介紹了IOS正則表達式之驗證密碼身份證手機號的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • IOS 中彈框的實現(xiàn)方法整理

    IOS 中彈框的實現(xiàn)方法整理

    這篇文章主要介紹了IOS 中彈框的實現(xiàn)方法整理的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • xcode8提交ipa失敗無法構建版本問題的解決方案

    xcode8提交ipa失敗無法構建版本問題的解決方案

    xcode升級到xcode8后發(fā)現(xiàn)構建不了新的版本。怎么解決呢?下面小編給大家?guī)砹藊code8提交ipa失敗無法構建版本問題的解決方案,非常不錯,一起看看吧
    2016-10-10
  • iOS 圖片裁剪的實現(xiàn)方法

    iOS 圖片裁剪的實現(xiàn)方法

    本篇文章主要介紹了iOS 圖片裁剪的實現(xiàn)方法,主要介紹了兩種圖片剪裁的方法,具有一定的參考價值,有興趣的可以了解一下。
    2017-03-03
  • iOS 標簽Tag列表的實現(xiàn)代碼

    iOS 標簽Tag列表的實現(xiàn)代碼

    這篇文章主要介紹了本篇文章主要介紹了iOS 標簽Tag列表的實現(xiàn)代碼,非常具有實用價值,需要的朋友可以參考下
    2017-04-04
  • iOS實現(xiàn)帶動畫的環(huán)形進度條

    iOS實現(xiàn)帶動畫的環(huán)形進度條

    這篇文章主要為大家詳細介紹了iOS實現(xiàn)帶動畫的環(huán)形進度條,同時帶數(shù)字同步效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01

最新評論

枣阳市| 白银市| 师宗县| 平果县| 吴桥县| 石首市| 洛南县| 手游| 铁岭县| 丰城市| 陆河县| 罗城| 万全县| 紫云| 云林县| 临潭县| 通海县| 琼结县| 惠安县| 诏安县| 饶河县| 新竹县| 清远市| 舒城县| 湖州市| 临城县| 红河县| 鄂尔多斯市| 合山市| 景洪市| 浦城县| 临城县| 乐昌市| 云龙县| 稷山县| 丰宁| 临安市| 汉阴县| 博客| 兴安县| 城口县|