我有一个UIView我已调整其图层使其显示为圆形.(view.layer.cornerRadius = view.frame.size.height/2)
还有n其他通过这种方式创建的小圈子.
用户的目的是通过将它们拖放到圆圈上来完全覆盖具有较小圆圈的第一个圆圈.
如何检查大圆圈是否已完全覆盖?
我看过这个问题确定UIView是否被其他视图覆盖?但我不确定如何获得UIBezierPath视图层.
任何帮助表示赞赏,谢谢!
所以我在这个过程中有一个基本的绘图应用程序,允许我绘制线条.我绘制到屏幕外的位图,然后显示图像drawRect.它工作但速度太慢,用你的手指画出来后更新大约半秒钟.我从本教程中获取了代码并对其进行了调整,http://www.youtube.com/watch?v = UFWeMIL-Nu8&feature = relmfu,正如您在评论中所看到的那样,人们也说它太慢但是那个家伙没有'回答.
那么我怎样才能加快速度呢?或者有更好的方法吗?任何指针将不胜感激.
继承了我的代码DrawView.m.
-(id)initWithCoder:(NSCoder *)aDecoder {
if ((self=[super initWithCoder:aDecoder])) {
[self setUpBuffer];
}
return self;
}
-(void)setUpBuffer {
CGContextRelease(offscreenBuffer);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
offscreenBuffer = CGBitmapContextCreate(NULL, self.bounds.size.width, self.bounds.size.height, 8, self.bounds.size.width*4, colorSpace, kCGImageAlphaPremultipliedLast);
CGColorSpaceRelease(colorSpace);
CGContextTranslateCTM(offscreenBuffer, 0, self.bounds.size.height);
CGContextScaleCTM(offscreenBuffer, 1.0, -1.0);
}
-(void)drawToBuffer:(CGPoint)coordA :(CGPoint)coordB :(UIColor *)penColor :(int)thickness {
CGContextBeginPath(offscreenBuffer);
CGContextMoveToPoint(offscreenBuffer, coordA.x,coordA.y);
CGContextAddLineToPoint(offscreenBuffer, coordB.x,coordB.y);
CGContextSetLineWidth(offscreenBuffer, thickness);
CGContextSetLineCap(offscreenBuffer, kCGLineCapRound);
CGContextSetStrokeColorWithColor(offscreenBuffer, [penColor CGColor]);
CGContextStrokePath(offscreenBuffer);
}
- (void)drawRect:(CGRect)rect {
CGImageRef cgImage = CGBitmapContextCreateImage(offscreenBuffer);
UIImage *image …Run Code Online (Sandbox Code Playgroud)