2013-08-04 5 views
2

После перетаскивания кнопки в мой scrollview окно больше не прокручивается! Если я удалю кнопку, прокрутка теперь будет работать.UIButton внутри UIScrollView отключает прокрутку

Кто-нибудь сталкивался с этим вопросом раньше?

//ScrollViewController.h 
@property (weak, nonatomic) IBOutlet UIScrollView *scroller; 


//ScrollViewController.m 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

    [self.scroller setScrollEnabled:YES]; 
    [self.scroller setContentSize:CGSizeMake(320, 700)]; 
} 

enter image description here

+0

Настоящий [Ответ] решить проблему в iOS 8 [1] [1]: http://stackoverflow.com/a/25900859/3433059 – Userich

ответ

2

На самом деле, он просто работал после добавления перемещение кода к viewDidLayoutSubiews.

Может кто-нибудь объяснить, ПОЧЕМУ это работает?

- (void)viewDidLayoutSubviews 
{ 
    [super viewDidLayoutSubviews]; 
    [self.scroller setScrollEnabled:YES]; 
    [self.scroller setContentSize:CGSizeMake(320, 700)]; 
} 
0

В viewDidLoad добавить:

self.scroller.canCancelContentTouches = YES; 
+2

Некоторое объяснение того, почему это необходимо, может помочь. –

0

подклассы UIScrollView и добавление код ниже в .m файл, сделали решить мою проблему замораживания прокрутки под прошивкой 8.

Код:

- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view 
{ 
    UITouch *touch = [touches anyObject]; 

    if(touch.phase == UITouchPhaseMoved) 
    { 
     return NO; 
    } 
    else 
    { 
     return [super touchesShouldBegin:touches withEvent:event inContentView:view]; 
    } 
} 

Это решение было найдено в ответе pasta12 в https://stackoverflow.com/a/25900859/3433059

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