Rui*_*res 9 iphone uiscrollview uiview ipad ios
注意:我已经阅读了一些关于UIScrollView子视图发送方式的问题(包括这个问题,虽然我已经投了票,但它不再符合我的预期).
我有什么:我有一个UIScrollView自定义UIView(让我们称之为A)里面覆盖整个UIScrollView.我也被允许UIViews在A中放入其他自定义.
在我这样做的代码上:
[scrollView setDelaysContentTouches:YES];
scrollView.canCancelContentTouches = NO;
Run Code Online (Sandbox Code Playgroud)
发生了什么:目前我的唯一问题是,如果我想在A中移动子视图,我必须触摸它,等待,然后移动它.正如这里所述:
现在,行为会根据UIView上第一次触摸的"时间长度"而变化.如果它很短,则管理相对拖动,因为它是UIScrollView的滚动.如果它很长,那么我将在我的UIView中获得touchesMoved:事件.
我想要的是:A中的子视图应始终优先,我不应该触摸和等待.如果我触摸A而不是它的子视图,我希望UIScrollView接收触摸,如平移和移动(contentSize比大于frame).
编辑1.0
我在通用内部使用此A视图的唯一原因UIScrollView是因为我希望能够放大/缩小A视图.所以我正在做以下事情:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return customView; // this is the A view
}
Run Code Online (Sandbox Code Playgroud)
一开始我没有内部的A视图UIScrollView,我唯一做的就是添加A作为我的UIViewController's根视图的子视图,一切顺利.如果有另一种方法可以放大/缩小,我很乐意接受答案.
注意:谢谢大家的贡献,特别是给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]]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8122 次 |
| 最近记录: |