iPhone - UIScrollView和UIDatePicker滚动冲突:一个干扰第二个

Oli*_*ver 3 iphone scroll freeze uidatepicker uiscrollview

我在UIScrollView中有一个UIDatePicker.但UIDatePicker不响应滚动触摸.这是滚动的滚动视图.在网上阅读一些文档,我将"延迟内容触摸"设置为NO,现在我看到日期选择器开始轻微滚动,但它仍然是滚动视图,它取得了最后的结果.我在屏幕上有一些用户可以触摸以滚动视图的位置.那么我怎样才能将两种卷轴分开并使日期选择器以正常方式滚动?

谢谢您的帮助

Oli*_*ver 5

使用该帖子解决:http: //www.alexc.me/uiscrollview-and-uidatepicker/153/

只需在其中包含该代码的类:

UIScrollViewBreaker.h

@interface UIScrollViewBreaker : UIScrollView {

}

- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view;
- (BOOL)touchesShouldCancelInContentView:(UIView *)view;

@end
Run Code Online (Sandbox Code Playgroud)

UIScrollViewBreaker.m

@implementation UIScrollViewBreaker


- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view {

    if ([view isKindOfClass:[UIDatePicker class]] || [@"UIPickerTable" isEqualToString:[[view class] description]] ) {
        //|| [view isKindOfClass:[UIPicker class]]
        return YES;
    }
    return [super touchesShouldBegin:touches withEvent:event inContentView:view];
}

- (BOOL)touchesShouldCancelInContentView:(UIView *)view {
    if ([view isKindOfClass:[UIDatePicker class]] || [@"UIPickerTable" isEqualToString:[[view class] description]] ) {
        return NO;
    }
    return [super touchesShouldCancelInContentView:view];
}


@end
Run Code Online (Sandbox Code Playgroud)

在IB中,将UIScrollView的类设置为UIScrollViewBreaker.

它已经完成了.

只是不要忘记让视图中的某个位置让用户让他滚动滚动视图.