iOS 給 UIView 某幾個角添加圓角

Objective-C

#import <Foundation/Foundation.h>

@interface OTSCorner : NSObject

/**
 *   給 UIView 某幾個角添加圓角
 *
 *  @param aView    輸入view
 *  @param aCorners 要添加圓角的角(方向)
 *  @param aSize    圓角size
 */

+ (void)addCornerWithView:(UIView *)aView type:(UIRectCorner)aCorners size:(CGSize)aSize;

@end
#import "OTSCorner.h"

@implementation OTSCorner

+ (void)addCornerWithView:(UIView *)aView type:(UIRectCorner)aCorners size:(CGSize)aSize
{
    // 根據(jù)矩形畫帶圓角的曲線
    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:aView.bounds byRoundingCorners:aCorners cornerRadii:aSize];
    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
    maskLayer.frame = aView.bounds;
    maskLayer.path = maskPath.CGPath;
    aView.layer.mask = maskLayer;
}

@end

Swift

import UIKit

class OTSCorner: NSObject {
    
    /**
     *   給 UIView 某幾個角添加圓角
     *
     *  @param aView    輸入view
     *  @param aCorners 要添加圓角的角(方向)
     *  @param aSize    圓角size
     */
    class func addCornerWithView(aView : UIView, aCorners : UIRectCorner, aSize : CGSize) ->Void
    {
        // 根據(jù)矩形畫帶圓角的曲線
        let maskPath = UIBezierPath.init(roundedRect: aView.bounds, byRoundingCorners: aCorners, cornerRadii: aSize)
        let maskLayer = CAShapeLayer()
        maskLayer.frame = aView.bounds
        maskLayer.path = maskPath.CGPath
        aView.layer.mask = maskLayer
    }
}

Swift 測試

        let view = UIView()
        view.frame = CGRectMake(100, 100, 100, 100)
        view.backgroundColor = UIColor.redColor()
        self.view.addSubview(view)
        OTSCorner.addCornerWithView(view, aCorners:[.TopLeft, .TopRight, .BottomLeft, .BottomRight], aSize: CGSizeMake(20, 20))

測試效果


D8592B7C-84C2-4BA5-ACAF-BDE3E08A2584.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 產(chǎn)品基本信息 名稱:釘釘 版本:iOS V2.2.2 (更新頻率平均每月1-2次) 簡介:阿里巴巴出品,專為中小企...
    tingtalks閱讀 5,993評論 1 2
  • 這篇文章可以看作是聽完講座之后的一些思考,可以結(jié)合聽講座:執(zhí)行力一起來看。 執(zhí)行力,對于一個人而言,其實就是去做一...
    周書恒閱讀 577評論 0 2
  • 感覺輝飛同學(xué)是一個陽光、積極、且行動迅速的人。在之前完成采訪這個周作業(yè)的時候,我與輝飛同學(xué)就互相采訪過。 她確實行...
    巧巧姐閱讀 295評論 1 2
  • (三十四)前塵往事 (三十五)公主難嫁 晉平大長公主第一次出嫁,十七歲。對方是文狀元,靖國公家的二公子,原與齊國侯...
    筆間流年閱讀 290評論 0 2
  • 提起教堂、鮮花、宣誓,你會想到什么詞,“婚禮”,一個神圣而莊嚴的人生環(huán)節(jié),有西式婚禮也有中式婚禮,有海邊婚...
    聶鳳手繪工作室閱讀 441評論 0 2

友情鏈接更多精彩內(nèi)容