我正在尝试画一个里面有一个数字的圆圈:
-(void)drawRect:(CGRect)rect {
//Drawing code
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 4.0);
CGContextSetStrokeColorWithColor(context, [UIColor blackColor].CGColor);
CGContextBeginPath(context);
CGContextAddEllipseInRect(context, rect);
CGContextDrawPath(context, kCGPathFillStroke);
// Label and index code
UILabel* circleLabel = [[UILabel alloc] init];
NSString *i=[Index stringValue];
[circleLabel setText:i];
[self addSubview:circleLabel];
}
我从自己的方法中调用 drawRect 方法:
-(void)addPhotoIndex:(NSNumber*)tempNumber withCoordinate:(NSString*)currentTouchPos{
self.coord= CGPointFromString(currentTouchPos);
CGRect rect= CGRectMake ((coord.x - 5), (coord.y- 5), 5, 5);
NSNumber *Index= tempNumber;
[self drawRect:rect];
}
它本身是从 ViewController 调用的。
但这不是什么都没画,也没有给出任何错误。有人可以帮我吗?
解决方案:
最后,这就是它的工作原理:
-(void)addPhotoIndex:(NSNumber*)tempNumber withCoordinate:(NSString*)currentTouchPos{
self.coord= CGPointFromString(currentTouchPos);
CGRect rect= CGRectMake ((coord.x - 3), (coord.y- 3), 3, 3);
NSNumber *Index= tempNumber;
NSString *i=[Index stringValue];
UIFont *font = [UIFont systemFontOfSize:15.0];
// Drawing Point
UIGraphicsBeginImageContext(self.frame.size);
[self.image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 3.0);
CGContextSetStrokeColorWithColor(context, [UIColor blackColor].CGColor);
CGContextBeginPath(context);
CGContextAddEllipseInRect(context, rect);
CGContextDrawPath(context, kCGPathFillStroke);
[ i drawAtPoint:self.coord withFont:font];
self.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
带有索引号的点在正确的位置彼此相邻绘制:) 感谢您的有用帮助!