我有圆角的视图。 我想让它在视图的两个底角处四舍五入。 我怎么能这样做?
这是我为视图制作圆角的代码:
CALayer *myLayer = moreInfoView.layer;
[myLayer setCornerRadius:20.0];
[view.layer setMasksToBounds:YES];
有可能吗?
谢谢!
答案 0 :(得分:3)
仅围绕UIRectCornerBottomLeft
和UIRectCornerBottomRight
角落:
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:yourView.bounds
byRoundingCorners:(UIRectCornerBottomLeft | UIRectCornerBottomRight)
cornerRadii:CGSizeMake(5.0, 5.0)];
CAShapeLayer *layer = [CAShapeLayer layer];
layer.frame = yourView.bounds;
layer.path = path.CGPath;
yourView.layer.mask = layer;
答案 1 :(得分:0)
不要认为你可以轻松地使用CALayer - 你可以继承NSView并制作一个简单的重绘例程。最简单的方法是使用http://www.cocoadev.com/index.pl?RoundedRectangles作为起点(删除两个bezier路径后,你不想要舍入),然后做一个简单的事情:
- (void)drawRect:(CGRect)rect
{
self.layer.masksToBounds = NO;
self.layer.shadowColor = [[UIColor xxxx] CGColor];
self.layer.shadowOffset = CGSizeMake(0,2);
self.layer.shadowRadius = ...
self.layer.shadowOpacity = ...
UIBezierPath *path = [UIBezierPath bezierPathWithPartiallyRoundedRect:rect
byRoundingCorners:UIRectCornerAllCorners cornerRadii:CGSizeMake(20, 20)];
[[UIColor blackColor] setFill or Stroke];
[path stroke or fill];
}
在上面的链接中 - 第二个简化的例子让你的生活变得更轻松 - 因为你可以简单地将它们中的两个做成'path lineToPoint:..'。