iPhone - UIScrollView and UIDatePicker scrolling c

2019-01-26 19:35发布

I have a UIDatePicker inside a UIScrollView. But the UIDatePicker does not respond to scroll touches. It's the scrollview that is scrolling. Reading some docs on the net, I've set "Delay Content Touches" to NO, an now I see the datepicker starting a slight scroll, but it's still the scrollview that take the final word. I have some place on the screen where the user can touch to scroll the view. So how may I separate the two kind of scrolls ans make the datepicker scroll in a normal way ?

Thank you for your help

2条回答
一纸荒年 Trace。
2楼-- · 2019-01-26 20:00

Solved using that post : http://www.alexc.me/uiscrollview-and-uidatepicker/153/

Just make the class with that code inside it :

UIScrollViewBreaker.h

@interface UIScrollViewBreaker : UIScrollView {

}

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

@end

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

And in IB, set the class of the UIScrollView to UIScrollViewBreaker.

And it's done.

Just don't forget to let some place on the view for the user to let him scroll the scrollview.

查看更多
Root(大扎)
3楼-- · 2019-01-26 20:07

Combine @ Oliver's answer with this one for keyboard text hiding issues, and you've got one awesome class for scroll view's.

http://github.com/webartisan/TPKeyboardAvoiding

Love Stackoverflow!!!!

Thanks.

查看更多
登录 后发表回答