2012-02-16 5 views
0

Я пытаюсь создать приложение для эскиза.Цель C: Рисование с пальцами на UIScrollView

Я использовал UIScrollView для подкачки и UIImageView для чертежа.

Я положил UIImageView поверх scrollView, но он не добавлен в UIScrollView, чтобы он не прокручивался.

Вопрос теперь ...

Это не писать, когда ...

[scrollView setScrollEnable:YES]; 
[scrollView setUserInteractionEnabled:YES]; 

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

есть способ, которым я могу прокручивать и писать одновременно без использования кнопки?

+0

Вы можете немного задуматься о интерактивности: создайте свой собственный прокручивающий компонент, который использует два пальца для салфетки/касания, а не один палец для прокрутки/панорамирования и коснитесь одним пальцем для рисования. – adig

ответ

3

Это определенно не правильный способ создания такого приложения.

A UIScrollView предназначен для прокрутки содержимого, не предназначенного для рисования. И вам не нужен UIImageView, чтобы нарисовать контент, достаточно простого UIView.

Здесь вам лучше всего создать один UIScrollView и отключить его прокрутку, потому что вы будете обрабатывать его двумя пальцами, в то время как чертеж будет обрабатываться другим распознавателем жестов.

UIPanGestureRecognizer *twoFingerScrolling = [[[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(onTwoFingerScroll:)] autorelease]; 
[twoFingerScrolling setMinimumNumberOfTouches:2]; 
[twoFingerScrolling setMaximumNumberOfTouches:2]; 
UIPanGestureRecognizer *oneFingerDraw = [[[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(onOneFingerDraw:)] autorelease]; 
[oneFingerDraw setMinimumNumberOfTouches:1]; 
[oneFingerDraw setMaximumNumberOfTouches:1]; 

[yourScollView addGestureRecognizer:twoFingerScrolling]; 
[yourScollView addGestureRecognizer:oneFingerDraw]; 

И позже в своем коде вы можете легко обрабатывать оба события, скроллинг:

- (void)onTwoFingerScroll:(UIPanGestureRecognizer*)sender 
{ 
    // Calculate the content offset from the shifting that occured 
    //[yourScrollView setContentOffset:theContentOffset] 
} 

И рисунок (который может быть сделано Quartz Tookit)

- (void)onOneFingerDraw:(UIPanGestureRecognizer*)sender 
    { 
     // Processing the drawing by using comparing: 
     if (sender.state == UIGestureRecognizerStateBegan) 
     { /* drawing began */ } 
     else if (iRecognizer.state == UIGestureRecognizerStateChanged) 
     { /* drawing occured */ } 
     else if (iRecognizer.state == UIGestureRecognizerStateEnded) 
     { /* drawing ended /* } 
    } 

Надежда это помогает.

Смежные вопросы