2016-10-07 2 views
0

Xcode 8, iOS 10을 사용하고 있습니다. Storyboard에서 Create ScrollView가 있습니다. 내 흐름은iOS ScrollView setContentSize가 작동하지 않습니다.

  • 입니다. viewDidLoad 메서드에는 Restcall이 있으며, 이는 서버에서 정보를 가져옵니다.
  • 돌아온 상태에서 Response에 대한 구문 분석을하고 Method에 Create UIElements를 기반으로 한 ParentView에 추가했습니다.
  • 마침내 ParentView가 ScrollView에 추가됩니다.
    [self.scrollView addSubview:parentView]; 
    self.scrollView.frame = CGRectMake(0, 0, 320, parentView.frame.size.height); 
    [self.scrollView setContentSize:CGSizeMake(320, parentView.frame.size.height)]; 
    

    나는이 코드 뒤에있는 ScrollView 높이를 인쇄

, 그것은 내보기 높이보다 더 "680"을 보여줍니다. 나는 "viewDidLayoutSubviews"메서드로 시도했지만 여전히 ScrollView가 작동하지 않습니다. 왜 스크롤되지 않는 사람이 있습니까? 그것은 내 사건에서 일하고

"사용 자동 레이아웃"

+0

[여기 제공된 링크 참조] (https://forums.developer.apple.com/thread/63858). 레이아웃 설정의 문제 일 것입니다. – vaibhav

+0

자동 레이아웃을 사용합니까? – user3182143

답변

3

코드의 문제는 당신이 있는 ScrollView 높이와 부모보기에서 contentSize 높이를 설정하는 것입니다.

당신은 다음과 같이해야한다 : -

[self.scrollView addSubview:parentView]; 

self.scrollView.frame = CGRectMake(0, 0, 320, [UIScreen mainScreen].bounds.size.height); 

[self.scrollView setContentSize:CGSizeMake(320, parentView.frame.size.height)]; 

희망이 당신은 UIScrollView의 잘못된 프레임을 설정하는 helpfull

+0

고맙습니다. 하루를 정말 많이 절약 할 수 있습니다. – nadim

+0

@nadim 걱정하지 마세요, 해피 코딩. –

1

봅니다 "인터페이스 빌더 문서"사용 안 함에서 자동 레이아웃 비활성화합니다.

3

될 것입니다. 이것이 귀하의 콘텐츠 크기가 작동하지 않는 이유입니다.

이 시도, 세트있는 ScrollView의 프레임 이전 layoutIfNeeded을 설정하는

[self.scrollView addSubview:parentView]; 
self.scrollView.frame = CGRectMake(0, 0, 320, [UIScreen mainScreen].bounds.size.height); 
[self.scrollView setContentSize:CGSizeMake(320, parentView.frame.size.height)]; 
+0

답장을 보내 주셔서 대단히 감사합니다. – nadim

+0

언제든지 ... –

0

시도.

나는 당신과 비슷한 상황입니다.

-(void)viewDidLoad{ 
    [self.view layoutIfNeeded]; 
    self.myCustomScrollView.frame = self.contentView.bounds; 
} 

AutoLayout은 Xcode8의 프레임 위치와 다르게 작동하는 것 같습니다.

그냥 이유는 모르겠지만 나를 위해 작동합니다.

관련 문제