我正在尝试制作草图垫应用程序。
我使用UIScrollView进行分页,使用UIImageView进行绘图。
我将UIImageView放在scrollView的顶部,但它没有添加到UIScrollView,所以它不会滚动。
现在问题......
这不是写作......
[scrollView setScrollEnable:YES];
[scrollView setUserInteractionEnabled:YES];
我需要使用一个按钮将其设置为NO
,
有没有一种方法可以在不使用任何按钮的情况下同时滚动和书写?
答案 0 :(得分:3)
这绝对不是构建此类应用程序的正确方法。
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 /* }
}
希望这有帮助。