【发布时间】:2014-03-27 06:28:17
【问题描述】:
我将圆角半径应用于UIView,即UIRectCornerTopLeft 和UIRectCornerTopRight。当我应用这个时,边框在角落里消失了。如何避免这种情况?
这就是我对UIView 应用边框的方式:
[self.middleView addRoundedCorners:UIRectCornerTopLeft|UIRectCornerTopRight withRadii:CGSizeMake(4, 4)];
self.middleView.layer.borderWidth = 0.5f;
self.middleView.layer.borderColor = [[UIColor colorWith8BitRed:0 green:0 blue:0 alpha:0.25]
这是我用于应用可选圆角的类别:
#import "UIView+Roundify.h"
@implementation UIView (Roundify)
- (void)addRoundedCorners:(UIRectCorner)corners withRadii:(CGSize)radii {
CALayer *tMaskLayer = [self maskForRoundedCorners:corners withRadii:radii];
self.layer.mask = tMaskLayer;
}
- (CALayer*)maskForRoundedCorners:(UIRectCorner)corners withRadii:(CGSize)radii {
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = self.bounds;
UIBezierPath *roundedPath = [UIBezierPath bezierPathWithRoundedRect:
maskLayer.bounds byRoundingCorners:corners cornerRadii:radii];
maskLayer.fillColor = [[UIColor whiteColor] CGColor];
maskLayer.backgroundColor = [[UIColor clearColor] CGColor];
maskLayer.path = [roundedPath CGPath];
return maskLayer;
}
【问题讨论】:
-
可选的圆角和边框是什么意思?
-
@codes 尝试将
strokeColor设置为CAShapeLayer *maskLayer -
@Akhilrajtr :添加了这个 - maskLayer.strokeLayer = [[UIColor blackColor] CGColor]; ...但没有工作
标签: ios objective-c uiview