objective-c - 未调用 touchesShouldCancelInContentView

标签 objective-c ios uiscrollview

我已经覆盖了子类,它拒绝调用 touchesShouldCancelInContentView。我发誓我以前写过代码来做到这一点。我正在覆盖该类,以便某些 View 不会将触摸事件传递给 ScrollView 。

与类(class)

@interface SlidingWindowScrollView : UIScrollView 
{
    UIView* noTouchView;
}

@property (nonatomic, retain) UIView* noTouchView;
@end

和实现

@implementation SlidingWindowScrollView
@synthesize noTouchView;

- (BOOL)touchesShouldCancelInContentView:(UIView *)view
{
    BOOL shouldCancel = NO;
    if(view == noTouchView)
        shouldCancel = YES;

    NSLog(@"shouldCancel %d", shouldCancel);
    return shouldCancel;
}
@end

在 xib 中,我在其中放下了一个 ScrollView 和一个 uiview,并将其写入确实加载的 VC View 中。

scrollView.contentSize = CGSizeMake(scrollView.bounds.size.width*2,
                                    scrollView.bounds.size.height);
scrollView.pagingEnabled = YES;
scrollView.canCancelContentTouches  = YES;

contentView.frame = CGRectMake(scrollView.frame.size.width + 20,
                               0,
                               scrollView.frame.size.width,
                               scrollView.frame.size.height);
contentView.userInteractionEnabled = YES;
scrollView.noTouchView = contentView;
[scrollView setContentOffset:CGPointMake(scrollView.bounds.size.width, 0) animated:YES];

不知道是什么原因。这应该是一个简单的覆盖。我确保自定义类在 XIB 中是正确的,并且所有媒体都说这是我的 UIScrollView 的新子类。我不是故意放肆,但最新的 iOS API 有什么问题吗?这看起来应该很容易,但它从未调用函数 touchesShouldCancelInContentView。我很困惑。如果有人能证明我错了并让 scrollView 调用此函数,我将不胜感激。我想应该注意的是,打印语句确实打印了,但可以始终如一地完成

如果您可以在您的机器上运行它,请告诉我,因为我没有发现任何错误。这让我发疯@_@希望有人能帮助我。谢谢。

最佳答案

据我所见,您不会得到 touchesShouldCancelInContentView: 或 touchesShouldBegin:withEvent:inContentView: 回调,除非您将 delaysContentTouches 设置为 NO:

scrollView.delaysContentTouches = NO;

关于objective-c - 未调用 touchesShouldCancelInContentView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7129143/

相关文章:

iOS,如何判断一张照片是不是用户截图?如何删除照片中的照片?

ios - 分页UIScrollView的缩放效果?

objective-c - 在 UIScrollView 中获取 CATiledLayer 支持的 View 的图像快照

ios - 如何使用 Vertical constraintsWithVisualFormat (SWIFT) 实现 UIScrollView

objective-c - 是否可以从 Youtube 视频链接播放音频而不是视频?

iphone - NSBlockOperation 和启动方法

ios - 如果行数超过 8 行,部分自定义 UITableViewCell 会很有趣

ios - 在 UINavigationController 中,topViewController、visibleViewController、presentedViewController 之间有什么区别?

android - FullCalendar 2.1.x 与触摸设备的兼容性

ios - 关于自定义 TabBarViewController