2013-09-02 2 views
-1

У меня есть ViewController с ScrollView, содержащий кучу содержимого от IB, но scrollview не работает.Содержание прокрутки показывает, но не прокручивается

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
/* 
* configure a bunch of label, text ,images and views from IB 
*/ 

    UIScrollView* scrollView = (UIScrollView*)self.view; 
    scrollView.scrollEnabled = YES; 
    scrollView.contentSize = CGSizeMake(320, 2000); 
} 

Я могу видеть содержимое до дна, но не могу прокручивать. Если это означает, что что-нибудь, это ViewController в одной из вкладок в TabBar

ответ

2
  1. для просмотра прокрутки для прокрутки его размер кадра должен быть меньше, чем его размер содержимого
  2. Вы добавили Scrollview из кода программно, но выглядит как вы говорите о добавлении его через раскадровку Xcode или в бобах файл
  3. Если вы добавляете это думало коды нужно добавить следующий код

[self.view addSubView: Scrollview];

Вот один пример

@interface ImageScrollView() 
    @property (nonatomic, strong) UIScrollView *scrollView; 
    @property (nonatomic, strong) UIPageControl *pageControl; 
@end 

-(void) baseInit { 
    // Scroll View - Full frame width 
    _scrollView = [[UIScrollView alloc] init]; 
    _scrollView.frame = self.frame; 
    _scrollView.delegate = self; 

    // ImageView - Full frame width 
    CGFloat width = self.frame.size.width; 
    CGFloat height = self.frame.size.height; 

    int i = 0; 
    int count = [imagesArray count]; 
    for (i = 0; i < count; i++) { 
     UIImage *image = [UIImage imageNamed:imagesArray[i]]; 
     UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(i * width, 0, width, height)]; 
     [imageView setImage:image]; 
     imageView.contentMode = UIViewContentModeScaleAspectFill; 
     imageView.clipsToBounds = YES; 
     imageView.tag = i+1; 
     [_scrollView addSubview:imageView]; 
    } 

    [_scrollView setContentSize:CGSizeMake(count * width, height)]; 
    [_scrollView setFrame:CGRectMake(0, 0, width, height)]; 
    _scrollView.pagingEnabled = YES; 
    _scrollView.showsHorizontalScrollIndicator = NO; 

    pageControl.numberOfPages = count; 
    pageControl.currentPage = 0; 
    CGRect pageFrame = CGRectMake(5, 5, 50, 50); 
    pageControl.frame = pageFrame; 
    pageControl.backgroundColor = [UIColor redColor]; 

    [self addSubview:_scrollView]; 
    [_scrollView addSubview:pageControl]; 
} 

Не забудьте вызвать функцию baseInit на ваш взгляд сделал нагрузки. Этот пример работает без необходимости добавлять какие-либо объекты в Storyboard или файлы nib

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