iphone - 以编程方式检测 ScrollView 外的触摸

标签 iphone ios objective-c uiscrollview

我正在尝试创建一个可水平滚动的 UIScrollView。 I am using this Ray Wenderlich tutorial .我有 ScrollView 出现并且工作正常,但目前在教程的“检测 ScrollView 外的触摸”部分遇到困难。

问题是我正在以编程方式创建所有内容。我对教程代码的这一部分感到特别困惑(在 ScrollViewContainer.m 中):

- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent*)event {
    UIView *view = [super hitTest:point withEvent:event];
    if (view == self) {
        return _scrollView;
        }
    return view;
}

其中 _scrollView 是一个 IBOutlet(在 ScrollViewContainer.h 中):

@property (nonatomic, strong) IBOutlet UIScrollView *scrollView;

据我了解,_scrollView“连接”是通过 socket 在 Storyboard上完成的。我应该如何以编程方式执行此操作?

最佳答案

通过使用这段代码,我找到了我的触摸对象并隐藏了 View ,所以希望您可以通过一些技巧和修改来修复它,只需传递您的 ScrollView 对象并在其触摸或未触摸的内部登录即可。

#pragma mark
#pragma mark - Touch Events
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [[event allTouches] anyObject];
    CGPoint imgPop = [touch locationInView: _scrollView];
    if ([_scrollView pointInside:imgPop withEvent:event])
    {
        NSLog(@"Touch Inside ScrollView");
    } else {
        NSLog(@"Touch Outside ScrollView");
    }
}

如果您发现实现它有任何困难,请告诉我。

关于iphone - 以编程方式检测 ScrollView 外的触摸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19286583/

相关文章:

php - JSONkit、MySQL、iOS——如何?

ios - 当页面在 Xamarin Forms 中已有 ScrollView 时如何处理 iOs 键盘重叠输入

ios - 在 numberOfItemsInSection 返回非零项目编号后未调用 UICollectionView cellForItemAtIndexPath

ios - 在 MonoTouch 中更改 UIPageControl 点的颜色

objective-c - UILabel 子类在 Objective-C 中显示为 UILabel

objective-c - 向使用 BWToolkit 的 App Store 提交应用程序

iphone - 适用于 iPhone 的低内存占用的 CSV 解析器

ios - 演示正在进行时尝试在 <**> 上演示 <**>。使用 swift 执行从一个 View Controller 到另一个 View Controller 的 Segue 时

iphone - resignFirstResponder 出现后续处理问题(键盘在 iPhone 5 上被阻止或崩溃)

当我将 HTML 字符串(大量数据)加载到 WebView 时,iPhone 应用程序崩溃