Цель C: Расстояние до точки касания - PullRequest
1 голос
/ 02 декабря 2011

У меня проблемы с приложением для рисования, которое я создаю.

На портрете точка касания в порядке, линия следует за правильной точкой касания, но когда я переключаю ориентацию на ландшафт, вот что произошло:

красная метка X - это точка касания, но линия начинается в другой точке.

enter image description here

как мне решить эту проблему ??

вот мой код:

на viewDidLoad:

    touchView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bgimg.png"]];
    [touchView setFrame:CGRectMake(0, 0, 768, 1024)];
    [self.view addSubview:touchView];
    [self.view sendSubviewToBack:touchView];

    touchMoved = 0;

    touchView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;

на ощупь Перемещено:

    UIGraphicsBeginImageContext(self.view.frame.size);
    [touchView.image drawInRect:CGRectMake(0, 0, 768, 1024)];
    CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 25.0f);
    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0, 0, 0, 1);
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), endingPoint.x, endingPoint.y);
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentTouch.x, currentTouch.y);
    CGContextStrokePath(UIGraphicsGetCurrentContext());
    touchView.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

1 Ответ

0 голосов
/ 02 декабря 2011

Как выглядит иерархия представления?

Если касания находятся в другом представлении или в родительском представлении, вам, скорее всего, потребуется вызвать метод convertPoint: UIView, чтобы получить правильное местоположение точки.

Если вы можете опубликовать свое мнение, наследник, я мог бы помочь больше

Ура,

Майкл

...