iPhone ScrollView 和 Picker 问题

标签 iphone objective-c ios

我注意到我的应用程序存在一个奇怪的问题,该问题仅发生在 iPhone 3G 和 iPhone 3GS 上。我正在创建一个包含两页的 ScrollView 。在滚动的第二页上,当您尝试滚动选择器时,它非常没有响应。看来我的应用程序无法区分选择器的滚动和 ScrollView 的滚动,因为有时您向上滚动,它会向左滚动。

请记住,这在 iPhone 4 和 iPhone 4S 上效果很好。

有人以前遇到过这个问题或者知道实际发生了什么吗?

最佳答案

显然,如果一起使用 UIScrollView 和 UIPickerView 会导致问题。不过,这只发生在 iPhone 3 和 iPhone 3GS 上。

解决方案是子类化 UIScrollView 并实现以下方法。

- (UIView *)hitTest:(CGPoint)point 
         withEvent:(UIEvent *)event
{
    UIView *result = [super hitTest:point withEvent:event];

    if ([result.superview isKindOfClass:[UIPickerView class]]) {
        self.canCancelContentTouches = NO;  
        self.delaysContentTouches = NO;
    }
    else {
        self.canCancelContentTouches = YES;
        self.delaysContentTouches = YES;
    }
    return result;
}

关于iPhone ScrollView 和 Picker 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10283220/

相关文章:

iphone - 第二次调用时使用 JSONKit 发生内存泄漏

ios - 如何存储在 .plist 文件中解析的 JSON?

android - 如何在 Google Drive 和 Dropbox 上为 Flutter 应用备份用户数据?

ios - 未调用自定义 NSObject iniWithCoder

ios - APNs 远程通知委托(delegate)方法未被调用

iphone - 使用 iPhone 5s 中提供的指纹扫描仪在我们的应用程序中进行授权

objective-c - UITableView 滑动删除 : how to customize button and action?

iphone - Xcode UIProgressBar 不递增

objective-c - 如何将 NSUrl 转换为 NSString?

ios - SKStoreReviewController requestReview() 可能会或可能不会出现和提醒?