这是图,上面的是用UIView,下面的使用CALayer。明显Layer上面有锯齿。这种个情况如何解决呢?
代码如下
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(ctx, 10);
CGContextSetLineJoin(ctx, kCGLineJoinRound);
CGContextSetStrokeColorWithColor(ctx, [UIColor redColor].CGColor);
CGContextBeginPath(ctx);
NSArray *xs = @[@(10),@(35),@(60),@(150),@(80)];
NSArray *ys = @[@(100),@(35),@(40),@(200),@(300)];
CGPoint previousCenter = CGPointZero;
for (NSUInteger i = 0; i < [xs count]; i++)
{
CGPoint start = previousCenter;
CGPoint end = CGPointMake([xs[i]floatValue], [ys[i]floatValue]);
if (i == 0) {
CGContextMoveToPoint(ctx, start.x, start.y);
}
CGContextAddLineToPoint(ctx, end.x, end.y);
previousCenter = end;
}
CGContextDrawPath(ctx, kCGPathStroke);
UIView是写在 drawRect:(CGRect)rect里面
CALayer是写在 drawInContext:(CGContextRef)ctx里面
天蓬老师2017-04-18 09:29:50
CAshapleLayer로 변경할 수 있습니다. 다음은 iphone6 시뮬레이터를 100으로 확대하는 효과에 대한 이미지 코드입니다
으아악巴扎黑2017-04-18 09:29:50
으아악
DrawLayer에서 위의 값을 설정하세요.
으아악이 속성의 기본값은 1입니다.
참조 코드:
하위 레이어
으아악레이어
으아악 으아악