iphone – UIScrollView向子视图发送触摸

iphone – UIScrollView向子视图发送触摸,第1张

概述注意:我已经阅读了一些关于UIScrollView向子视图发送触摸的问题(包括 this,虽然我已经投票,但它不再像我预期的那样工作). 我拥有:我有一个带有自定义UIView的UIScrollView(我们称之为A),其中包含整个UIScrollView.我也被允许在A中放置其他自定义UIViews. 在我这样做的代码上: [scrollView setDelaysContentTouches: 注意:我已经阅读了一些关于UIScrollVIEw向子视图发送触摸的问题(包括 this,虽然我已经投票,但它不再像我预期的那样工作).

我拥有:我有一个带有自定义UIVIEw的UIScrollVIEw(我们称之为A),其中包含整个UIScrollVIEw.我也被允许在A中放置其他自定义UIVIEws.

在我这样做的代码上:

[scrollVIEw setDelaysContenttouches:YES];scrollVIEw.canCancelContenttouches = NO;

发生了什么:目前我的唯一问题是,如果我想在A中移动子视图,我必须触摸它,等待,然后移动它.正如here所述:

Now,the behavIoUr changes depending on the “length in time” of the
first touch on the UIVIEw. If it’s short,then the relative dragging
is managed as it was a scroll for the UIScrollVIEw. If it’s long,then
I’m getting the touchesMoved: events insIDe my UIVIEw.

我想要的是:A中的子视图应始终优先,我不应该触摸和等待.如果我触摸A而不是它的子视图,我希望UIScrollVIEw接收触摸,如平移和移动(contentSize大于帧).

编辑1.0

我在通用UIScrollVIEw中使用此A视图的唯一原因是因为我希望能够放大/缩小A视图.所以我正在做以下事情:

- (UIVIEw *)vIEwForZoomingInScrollVIEw:(UIScrollVIEw *)scrollVIEw {    return customVIEw; // this is the A vIEw}

一开始我没有UIScrollVIEw中的A视图,我唯一做的就是添加A作为我的UIVIEwController根视图的子视图,一切顺利.如果有另一种方法可以放大/缩小,我很乐意接受答案.

@R_403_6120@ 注意:谢谢大家的贡献,特别是对Aaron Hayman的贡献.

我能够通过在UIScrollVIEw子类上执行以下 *** 作来解决这个问题:

-(BOol)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{   CGPoint pointOfContact = [gestureRecognizer locationInVIEw:self];    // The vIEw with a tag of 200 is my A vIEw.    return (![[self hitTest:pointOfContact withEvent:nil] isEqual:[self vIEwWithTag:200]]);}
总结

以上是内存溢出为你收集整理的iphone – UIScrollView向子视图发送触摸全部内容,希望文章能够帮你解决iphone – UIScrollView向子视图发送触摸所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1084658.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存