下面简单的UIView绘制一个圆角矩形。当我通过角落半径65或以下时,它正确地圆,但66及以上,它会产生一个完美的圆圈!这里发生了什么?当角半径等于框架宽度的1/2时,它应该只显示一个圆,但是当半径大约是1/3时,无论视图的大小是多少,它似乎都是绘制一个圆。 此行为出现在iOS 7上。在iOS 6上,我得到预期的行为。
#import "ViewController.h"
@interface MyView : UIView
@end
@implementation MyView
-(void)drawRect:(CGRect)rect {
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 200, 200) cornerRadius:65];
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextAddPath(c, path.CGPath);
[[UIColor redColor] set];
CGContextStrokePath(c);
}
@end
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
MyView *v = [[MyView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
[self.view addSubview:v];
}
@end