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
{
    // 根据矩形画带圆角的曲线
    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
    {
        // 根据矩形画带圆角的曲线
        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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 产品基本信息 名称:钉钉 版本:iOS V2.2.2 (更新频率平均每月1-2次) 简介:阿里巴巴出品,专为中小企...
    tingtalks阅读 11,121评论 1 2
  • 这篇文章可以看作是听完讲座之后的一些思考,可以结合听讲座:执行力一起来看。 执行力,对于一个人而言,其实就是去做一...
    周书恒阅读 3,514评论 0 2
  • 感觉辉飞同学是一个阳光、积极、且行动迅速的人。在之前完成采访这个周作业的时候,我与辉飞同学就互相采访过。 她确实行...
    巧巧姐阅读 1,783评论 1 2
  • (三十四)前尘往事 (三十五)公主难嫁 晋平大长公主第一次出嫁,十七岁。对方是文状元,靖国公家的二公子,原与齐国侯...
    笔间流年阅读 1,783评论 0 2
  • 提起教堂、鲜花、宣誓,你会想到什么词,“婚礼”,一个神圣而庄严的人生环节,有西式婚礼也有中式婚礼,有海边婚...
    聂凤手绘工作室阅读 3,085评论 0 2

友情链接更多精彩内容