UIPinchGeustureRecognizer를 사용하여 선을 그립니다. 모든 stackoverflow 솔루션을 사용해 보았지만 행운은 없었습니다. 이 문제를 해결하도록 도와주세요. 다음과 같은 오류가 발생했습니다UIPinchGeustureRecognizer를 사용하여 선 그리기
먼저 코드 논리가 올바른지 알고 싶습니다. 그리고 touchbegan/touchmoved에서 포인트를 얻지 못했습니다. (void) handleLinePinch : (UIPinchGestureRecognizer *) 제스처에서만 두 점을 얻습니다.
//My instances in .h file
CGPoint location1,location2;
LineView* l;
- (void)viewDidLoad
{
[super viewDidLoad];
l = [[LineView alloc]initWithFrame:self.view.frame];
[self.view addSubview:l];
UIPinchGestureRecognizer *linepinch = [[UIPinchGestureRecognizer alloc]
initWithTarget:l action:@selector(handleLinePinch:)];
[l addGestureRecognizer:linepinch];
}
- (void)handleLinePinch:(UIPinchGestureRecognizer *)gesture
{
NSUInteger num_touches = [gesture numberOfTouches];
// save locations to some instance variables, like `CGPoint location1, location2;`
if (num_touches >= 1) {
location1 = [gesture locationOfTouch:0 inView:l];
}
if (num_touches >= 2) {
location2 = [gesture locationOfTouch:1 inView:l];
}
[l drawRect:location1 Loc2:location2];
[l setNeedsDisplay];
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
}
LineView.m
- (void)drawRect:(CGPoint)location1 Loc2:(CGPoint)location2 {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 5.0);
CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
CGFloat components[] = {0.0, 0.0, 1.0, 1.0};
CGColorRef color = CGColorCreate(colorspace, components);
CGContextSetStrokeColorWithColor(context, color);
CGContextMoveToPoint(context, location1.x, location1.y);
CGContextAddLineToPoint(context, location2.x, location2.y);
CGContextStrokePath(context);
CGColorSpaceRelease(colorspace);
CGColorRelease(color);
}
여기서부터 내가 업데이트 된 location1 및 location2 값을 읽었습니까? 나는 touchesBegan/Moved 또는 (void) handleLinePinch을 의미합니까? 'handleLinePinch :'의 – user3714144
@ user3714144. – KudoCC
나는 그 일을 잘 해냈다. 그 일은 선을 끌기 위해 그려진 선을 어떻게 감지 할 수 있는가이다. – user3714144