2011-01-17 3 views
3

У меня есть UIDatePicker внутри UIScrollView. Но UIDatePicker не отвечает на прокрутки. Это прокрутка прокрутки. Читая некоторые документы в сети, я установил «Delay Content Touches» на NO, теперь я вижу, что datepicker начинает небольшой прокрутки, но по-прежнему остается scrollview, который принимает окончательное слово. У меня есть место на экране, где пользователь может коснуться, чтобы прокрутить представление. Итак, как я могу отделить два вида свитков и сделать прокрутку datepicker обычным способом?iPhone - UIScrollView и UIDatePicker прокрутка конфликта: один вмешивается со вторым

Спасибо за вашу помощь

+0

Существует большой ответ на этот вопрос [здесь] [1]. [1]: http://stackoverflow.com/questions/935521/uidatepicker-inside-uiscrollview-with-pages –

ответ

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 

UIScrollViewBreaker. м

@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 

И в IB установите класс UIScrollView в UIScrollViewBreaker.

И все готово.

Просто не забудьте оставить какое-то место на экране, чтобы пользователь мог прокрутить прокрутку.

1

Комбинат @ Ответ Оливера с этим вопросом для скрытия текста на клавиатуре, и у вас есть один классный класс для просмотра прокрутки.

http://github.com/webartisan/TPKeyboardAvoiding

Любовь Stackoverflow !!!!

Спасибо.

Смежные вопросы