我拥有:我有一个带有自定义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向子视图发送触摸所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)