2010-07-27 2 views
0

У меня проблема с UIScrollView. Я установил его frame.size, contentSize (больше кадра), но я все еще не могу прокручивать. Моя программа sctucrure так: MainMenuViewController -> ScrollBarController -> UIScrollViewUIScrollView не прокручивает

Это часть метода MainMenuViewController в viewDidLoad

ScrollBarController *imgScrollBarCtrl = [[ScrollBarController alloc] init]; 
// set images folder 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *imagesFolder = [documentsDirectory stringByAppendingPathComponent:@"SavedImages"]; 

// set scroll bar frame size 
imgScrollBarCtrl.view.frame = CGRectMake(0.0, 0.0, 1024.0, 128.0); 
[imgScrollBarCtrl setImagesFolder:imagesFolder]; 

// method adds subviews UIImageView to the scroll bar 
// and set view's contentSize according thumbnails number 
[imgScrollBarCtrl recalculateThumbnailsBounds]; 

[topPanel addSubview:imgScrollBarCtrl.view]; 
[imgScrollBarCtrl release]; 

Существует метод loadView из класса ScrollBarController:

- (void)loadView { 

    UIScrollView *aScrollView = [[UIScrollView alloc] init]; 

    aScrollView.scrollEnabled = YES; 

    self.view = aScrollView; 

    [aScrollView release]; 
} 

Я установил contentSize своего scrollView в recalculateThumbnailsBounds ScrollBarController. Он был установлен правильно (1620.0, 128.0), но прокрутка не работает. Я попытался установить contentSize в MenuViewController, добавив: ((UIScrollView *)imgScrollBarCtrl.view).contentSize(2000.0, 128.0);, но он не работает.

я NSLog(...) после установки contentSize и размер печати кадров и contentSize к консоли - они установлены правильно freme.size = 1028.0,128.0, contentSize = 1620.0,128.0.

Я проверил методы - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event в обоих контроллерах - MainMenuController и ScrollBarController. Этот метод запускает только основной контроллер. ScrollBarController никогда не получает событий касаний ... возможно, это проблема ...

Есть ли у кого-нибудь идеи, что может быть неправильным? Ура!

ответ

-1
[[UIScrollView alloc] initWithFrame:(CGRect)frame] 

Все последующие потоки UIView используют схему.

Кроме того, ваш фрагмент кода на самом деле не совсем ясно, чего вы пытаетесь достичь, поэтому у вас могут быть другие проблемы в вашем коде.

Вам следует попытаться сначала начать настройку contentSize в методе load (first) loadView и посмотреть, получилось ли вам правильное поведение.

+0

Я уже пробовал это. Попробовал снова после вашей рекомендации. Я имею то же самое - вид прокрутки и макет субвью отлично, но прокрутка не прокручивается. Какие методы вам нужны, чтобы иметь лучшую картину? Я просто подумал, что этих методов достаточно. Другие методы больше для вычисления фреймов для представлений 'UIImageView' и добавления их в представление прокрутки. – OgreSwamp

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