gpt4 book ai didi

objective-c - Objective-C : Drawing with Fingers on UIScrollView

转载 作者:行者123 更新时间:2023-11-28 20:39:10 25 4
gpt4 key购买 nike

我正在尝试制作一个画板应用。

我使用 UIScrollView 进行分页,使用 UIImageView 进行绘图。

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

现在的问题...

它不是在写...

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

我需要使用一个按钮将其设置为NO,以便它写入,

有没有一种方法可以在不使用任何按钮的情况下同时滚动和书写?

最佳答案

这绝对不是构建此类应用程序的正确方法。

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 /* }
}

希望这对您有所帮助。

关于objective-c - Objective-C : Drawing with Fingers on UIScrollView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9310708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com