2014-07-18 74 views
0

后,我已经创建了一个UIScrollView编程,并且不滚动:的UIScrollView不滚动设置ContentSize

CGRect prevFrame; 
     BOOL isFirst = TRUE; 
     UIScrollView *view_scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
     view_scroll.contentSize = CGSizeMake(650,224*[_cases count]+25*[_cases count]); 
     view_scroll.showsVerticalScrollIndicator = YES; 
     view_scroll.scrollEnabled = YES; 
     NSLog(@"%f",view_scroll.contentSize.height); 
     [self.view addSubview:view_scroll]; 
     for(SLSCase* patientCase in _cases){ 
      SLSCaseCard* caseCard = [[[NSBundle mainBundle] loadNibNamed:@"SLSCaseCard" owner:self options:nil] objectAtIndex:0]; 
      if(isFirst){ 
       caseCard.frame = CGRectMake(25,25, caseCard.frame.size.width, caseCard.frame.size.height); 
       isFirst = FALSE; 
      } 
      else{ 
       caseCard.frame = CGRectMake(25, prevFrame.origin.y+caseCard.frame.size.height+25, caseCard.frame.size.width, caseCard.frame.size.height); 
      } 
      prevFrame = caseCard.frame; 
      [view_scroll addSubview:caseCard]; 
     } 

正如你可以看到我已经设置了contentSize和scrollEnabled。它仍然不滚动。

+2

可能是您的内容大小小于您的滚动视图框架。 –

+0

您确定_cases中有物品吗?你能否在屏幕上看到内容低于屏幕底部? – mikeyq6

+0

尝试首先将大小分配给CGSize变量并检查值以确保大小正确 – mikeyq6

回答

0

由于自动布局中的scrollView功能,contentSize被重新定义。要解决此问题,您可以禁用自动布局或设置viewDidLayoutSubviews()内容大小

-(void)viewWillLayoutSubviews { 
    [super viewDidLayoutSubviews]; 
    view_scroll.contentSize = CGSizeMake(650,224*[_cases count]+25*[_cases count]); 
}