目标C:在UIScrollView上用手指画图

我正在试图做一个素描垫的应用程序。

我用UIScrollView作为分页和UIImageView的绘图。

我把UIImageView放在scrollView的顶部,但是没有添加到UIScrollView,所以不会滚动。

现在的问题…

这不是在写…

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

我需要将它设置为NO ,使用它来编写一个button,

有没有办法,我可以滚动和写在同一时间,而不使用任何button?

这绝对不是build立这种应用程序的正确方法。

UIScrollView是用于滚动内容而不是绘图。 而且你不需要一个UIImageView来绘制内容,一个简单的UIView就足够了。

这里最好的办法是创build一个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] } 

和绘图(这可以由石英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 /* } } 

希望这可以帮助。