iOS 7上疯狂的圆形矩形路径行为。怎么回事?
下面的简单UIView绘制了一个圆角矩形。当我通过一个半径为65或更低的拐角时,它会正确地旋转,但大于等于66时,它会生成一个完美的圆!这是怎么回事?当角半径等于帧宽度的1/2时,它应该只显示一个圆,但当半径约为1/3时,无论视图的大小如何,它似乎都在绘制一个圆此行为出现在iOS 7上。在iOS 6上,我得到了预期的行为。iOS 7上疯狂的圆形矩形路径行为。怎么回事?,ios,objective-c,drawing,cgcontext,uibezierpath,Ios,Objective C,Drawing,Cgcontext,Uibezierpath,下面的简单UIView绘制了一个圆角矩形。当我通过一个半径为65或更低的拐角时,它会正确地旋转,但大于等于66时,它会生成一个完美的圆!这是怎么回事?当角半径等于帧宽度的1/2时,它应该只显示一个圆,但当半径约为1/3时,无论视图的大小如何,它似乎都在绘制一个圆此行为出现在iOS 7上。在iOS 6上,我得到了预期的行为。 #import "ViewController.h" @interface MyView : UIView @end @implementation MyView -(vo
#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
存档rdar://17801182Good 接住。请随时更新此帖子。此错误在iOS 8上仍然存在。iOS 9Oh上仍然存在。下面是一个解决方案: