문제

사용자가 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 샘플 코드가 초보자에게는 너무 복잡 할 수 있으므로 이 튜토리얼. 대부분의 초보자에게 배우는 것은 간단합니다.

손가락으로 작성된 서명은 작문 악기로 작성된 것과 다를 것입니다. 서명을 사용하는 것을 다시 생각할 수 있으며 필요한만큼 바인딩인지 여부를 다시 생각할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top