ManWithBear
@ManWithBear
Swift Adept, Prague

Как увеличить количество отзывов UITouch?

Как можно увеличить кол-во вызовов
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
за единицу времени?

Пишу приложение-рисовалку, отрисовка происходит во время вызова этой функции, вследствие чего при медленном движении пальца всё нормально, но при быстрых движениях получаются разрывы.
Соединять точки между собой нет возможности, так как идет не само рисование, а восстановление изображения (копирование участков картинки).

Update
При нажатии и движении происходит вызов этой функции:
- (void)eraseInPoint:(CGPoint)point {
    float x = point.x-brushSize/2, y = point.y-brushSize/2;
    float width = brushSize, height = brushSize;
    CGRect dirtyRect = CGRectMake(x, y, width, height);
    CGRect drawRect = dirtyRect;
    drawRect.origin.y = self.bounds.size.height-drawRect.origin.y-drawRect.size.height;
    CGImageRef erase = CGImageCreateWithImageInRect(startedImage, drawRect);
    CGContextDrawImage(cacheContext, dirtyRect, erase);
    CGImageRelease(erase);
    [self setNeedsDisplayInRect:dirtyRect];
}

startedImage - исходное изображение до изменений
cacheContext - контекст рисования
  • Вопрос задан
  • 2556 просмотров
Решения вопроса 1
Flanker_4
@Flanker_4
Скорей всего Вы в методе touchesMoved пытаетесь "рисовать", что съедает ресурсы и программа начинает спотыкаться. попробуйте удалить код рисования и посмотрите, участился ли вызов метода. если это так, то тогда в методе touchesMoved просто запоминаете координаты , а парарллельно уже по тайиеру(или каким-то другим способом) запускаете перерисовку экрана, опытным путем подобрав частоту.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы