iPhone 화면에서 라인으로 서명을 그리는 방법?
-
22-08-2019 - |
문제
사용자가 iPhone 화면에 서명을 그리도록하므로 UIView의 서브 클래스를 추가하고 'TouchesMoved'메소드에 코드를 추가합니다.
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
firstTouch = [touch locationInView:self];
CGSize mySize = CGSizeMake(5, 5);
UIGraphicsBeginImageContext(mySize);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextBeginPath(ctx);
CGContextSetRGBFillColor(ctx, 1, 0, 0, 1);
CGContextAddRect(ctx, CGRectMake(0, 0, 5, 5));
CGContextFillPath(ctx);
UIImage *redRect = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *redRectView = [[UIImageView alloc] initWithImage:redRect];
redRectView.center = CGPointMake(firstTouch.x, firstTouch.y);
[self addSubview:redRectView];
}
나는 작은 사각형으로 그것을 그리며 점으로 점으로 밝혀졌습니다. 너무 못 생겼기 때문에 라인으로 서명을 그리고 싶습니다. 그러나 FirstTouch와 Lasttouch를 구별하는 방법은 무엇입니까? 'touchesmoved'메소드 만 사용하면 하나의 터치 포인트 만 얻을 수 있습니다.
해결책
에 따라 UIRSPonder 클래스 참조, 당신은 또한 구현해야합니다
– touchesBegan:withEvent:
그리고
– touchesEnded:withEvent:
.
이러한 방법을 구현 한 후에는 Bezier 곡선 또는 기타 적합한 솔루션을 구현하기에 충분한 데이터를 얻을 수 있어야합니다.
[편집하다] 아마도 더 나은 솔루션은 UIEvent
컨트롤러가 수신되면 개체
– touchesMoved:withEvent:
공고. 또한, glpaint 샘플 코드 도움이 될 수도 있습니다.
다른 팁
glpaint 샘플 코드가 초보자에게는 너무 복잡 할 수 있으므로 이 튜토리얼. 대부분의 초보자에게 배우는 것은 간단합니다.
손가락으로 작성된 서명은 작문 악기로 작성된 것과 다를 것입니다. 서명을 사용하는 것을 다시 생각할 수 있으며 필요한만큼 바인딩인지 여부를 다시 생각할 수 있습니다.
제휴하지 않습니다 StackOverflow