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

iOS實(shí)現(xiàn)圓角箭頭視圖

 更新時(shí)間:2021年04月15日 17:34:38   作者:徐石石石  
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)圓角箭頭視圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

在APP中實(shí)現(xiàn)類似聊天內(nèi)容背景圖時(shí),需要繪制圓角及箭頭。很多人會(huì)選擇使用圖片(這也是最省事的一種方法),但是對于在視圖中對內(nèi)容做約束布局的話,我們無法準(zhǔn)確的知道箭頭的偏移量。下面就來介紹一下利用CGContextRef怎樣繪制吧。

先來看看效果圖吧!

代碼實(shí)現(xiàn):

- (void)drawRect:(CGRect)rect {
    float lw = 2; // 邊線寬度
    float aw = 4;// 箭頭寬
    float ah = 5;// 箭頭高
    float r = 3;// 圓角角度
    
    // 需要減去邊線的寬度,為什么不是減去邊線的寬度x2?
    // 因?yàn)樽筮吘€和上邊線是往視圖內(nèi)描繪的,而右邊線和下邊線是往視圖外描繪的。
    float w = self.frame.size.width - lw;// 設(shè)置畫線長度
    float h = self.frame.size.height - lw;// 設(shè)置畫線寬度
    
    // 獲取上下文
    CGContextRef context = UIGraphicsGetCurrentContext();
    // 設(shè)置邊線寬度
    CGContextSetLineWidth(context, lw);
    //邊框顏色
    CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
 
    // 矩形填充顏色
    CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
 
    CGContextMoveToPoint(context, 0, lw); // 開始坐標(biāo)左邊開始
    CGContextAddArcToPoint(context, w, lw, w, r, r); // 右上角角度
    CGContextAddArcToPoint(context, w , h, w-r, h, r); // 右下角角度
    CGContextAddArcToPoint(context, aw, h, aw, h-r, r); // 左下角角度
    CGContextAddLineToPoint(context, aw, ah); // 向左上豎線
    CGContextAddLineToPoint(context, 0, lw); // 向左上斜線
    
    CGContextDrawPath(context, kCGPathFillStroke); //根據(jù)坐標(biāo)繪制路徑

    // 父類調(diào)用 放在畫完邊線后。不然設(shè)置的文字會(huì)被覆蓋
    [super drawRect:rect];
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

璧山县| 绵阳市| 海丰县| 深圳市| 浏阳市| 肇庆市| 郧西县| 云南省| 台南县| 三门县| 科技| 长阳| 巴南区| 虹口区| 榆林市| 吉安市| 论坛| 重庆市| 永城市| 原平市| 崇阳县| 中超| 东光县| 桂阳县| 巨鹿县| 资溪县| 潞西市| 藁城市| 东明县| 德格县| 海晏县| 乐亭县| 方正县| 遂平县| 岱山县| 临武县| 明溪县| 兴国县| 罗田县| 建水县| 呈贡县|