UIScrollview不滚动设置ContentSize后

时间:2014-07-18 08:29:30

标签: ios objective-c uiscrollview

我已经以编程方式创建了UIScrollView,并且没有滚动:

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。它还没有滚动。

1 个答案:

答案 0 :(得分:0)

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

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