在iOS 7上疯狂舍入UIBezierPath行为。这是什么交易?

时间:2014-07-24 14:07:33

标签: 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
-(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

enter image description here enter image description here

enter image description here

0 个答案:

没有答案