今天因為工程里面的view設(shè)置的是左上邊沒有圓角长酗,所以特別寫了一個UIiView的分類方法,來實現(xiàn)UIview的某一邊帶有圓角
方法如下:
.h里
import <UIKit/UIKit.h>
typedef NS_ENUM(NSInteger,UILayoutCornerRadiusType) {
UILayoutCornerRadiusTop = 0,
UILayoutCornerRadiusLeft = 1,
UILayoutCornerRadiusBottom = 2,
UILayoutCornerRadiusRight = 3,
UILayoutCornerRadiusAll = 4,
UILayoutCornerdeleteTopleft = 5,
};
@interface UIView (CornerRadius)
/**
- @author
- 設(shè)置不同邊的圓角
- @param sideType 圓角類型
- @param cornerRadius 圓角半徑
*/
-(void)UILayoutCornerRadiusType:(UILayoutCornerRadiusType)radiusType withCornerRadius:(CGFloat)cornerRadius;
@end
.m里
import "UIView+CornerRadius.h"
@implementation UIView (CornerRadius)
-
(void)UILayoutCornerRadiusType:(UILayoutCornerRadiusType)sideType withCornerRadius:(CGFloat)cornerRadius
{CGSize cornerSize = CGSizeMake(cornerRadius, cornerRadius);
UIBezierPath *maskPath;switch (sideType) {
case UILayoutCornerRadiusTop:
{
maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds
byRoundingCorners:(UIRectCornerTopLeft|UIRectCornerTopRight)
cornerRadii:cornerSize];
}
break;
case UILayoutCornerRadiusLeft:
{
maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds
byRoundingCorners:(UIRectCornerTopLeft|UIRectCornerBottomLeft)
cornerRadii:cornerSize];
}
break;
case UILayoutCornerRadiusBottom:
{
maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds
byRoundingCorners:(UIRectCornerBottomLeft|UIRectCornerBottomRight)
cornerRadii:cornerSize];
}
break;
case UILayoutCornerRadiusRight:
{
maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds
byRoundingCorners:(UIRectCornerTopRight|UIRectCornerBottomRight)
cornerRadii:cornerSize];
}
break;
case UILayoutCornerdeleteTopleft:
{
maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds
byRoundingCorners:(UIRectCornerTopRight|UIRectCornerBottomRight|UIRectCornerBottomLeft)
cornerRadii:cornerSize];
}
break;
default:
{
maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds
byRoundingCorners:UIRectCornerAllCorners
cornerRadii:cornerSize];
}
break;
}// Create the shape layer and set its path
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = self.bounds;
maskLayer.path = maskPath.CGPath;// Set the newly created shape layer as the mask for the image view's layer
self.layer.mask = maskLayer;[self.layer setMasksToBounds:YES];
}
@end
//調(diào)用
-
(void)viewDidLoad {
[super viewDidLoad];UIView *whiteView =[[UIView alloc]init];
whiteView.backgroundColor = [UIColor whiteColor];
whiteView.frame = CGRectMake(30, 300, 200, 200);
[whiteView UILayoutCornerRadiusType:5 withCornerRadius:3];
[self.view addSubview:whiteView];
}
此處聲明一下:可以修改代碼,讓其中三邊有圓角疑务,只需要添加類型然再在Case里添加 其實主要是添加 UIRectCornerTopRight|UIRectCornerBottomRight|UIRectCornerBottomLeft這里面的類型