2017-11-02 10 views
0

에 다시 그릴하지 것은 내가 크기 만 내용으로 채우기 후에 알려져있는 여러 UIViews를 포함하는있는 UIScrollView이있는 UIScrollView 난 그냥 내 응용 프로그램의 일부를 실현 아이폰 OS (11)

아이폰 OS (11)에 분류됩니다. 모든 제약 조건과 내용이 업데이트 된 후에 스크롤 뷰의 contentSize를 설정했는데 제대로 작동하고 제대로 작동합니다.

그러나 iOS 11에서는 오른쪽의 스크롤 막대에 움직임이 있음이 표시됩니다 ('viewDidLayoutSubviews'를 모니터링하여 로그 할 때 '_scrollView.contentOffset.y'를 표시하지만 아래 참조) 화면의 시각적 요소는 움직이지 않습니다.

강제로 화면을 다시 그려야합니까? 이 원인이 될 수 있습니다.

- (void) viewDidLayoutSubviews { 
    NSLog(@"Test, content size %f, bounds %f", _scrollView.contentSize.height, _scrollView.contentOffset.y); 
} 

스크롤 로그 :

2017-11-02 12:02:11.831563+0000 iDomsPortal[49338:3761141] Test, content size 1491.000000, bounds 175.666667 
2017-11-02 12:02:11.839238+0000 iDomsPortal[49338:3761141] Test, content size 1491.000000, bounds 175.333333 
2017-11-02 12:02:11.847142+0000 iDomsPortal[49338:3761141] Test, content size 1491.000000, bounds 175.000000 
2017-11-02 12:02:12.942449+0000 iDomsPortal[49338:3761141] Test, content size 1491.000000, bounds 176.000000 
2017-11-02 12:02:12.952917+0000 iDomsPortal[49338:3761141] Test, content size 1491.000000, bounds 180.333333 

으로 내가 노력 제안 :

if (@available(iOS 11.0, *)) { 
    _scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; 
} else { 
    // Fallback on earlier versions 
} 

[편집 :] 문제 식품. 하나의 항목이 상위 레이아웃 가이드가 아니라 상위보기를 참조했습니다. IOS 11에서는 동작이 달라야하며 레이아웃 가이드는 정적으로 유지되며 스크롤과 함께 움직이지 않습니다.

Xcode screenshot

Example on iPhone X simulator

+0

코드가 없으면 실제 문제는 어디에 있는지 알 수 있지만 새 UIView에 새 콘텐츠를 추가 할 때 타이머 또는 지연 메서드를 추가하려고 시도합니다. – iPatel

+0

로그에 표시된 콘텐츠 크기는 1491이고 contentOffset은 옆의 스크롤 바. 그러나 scrollView 내의 뷰는 어떤 이유로 움직이지 않습니다. –

+0

그런 다음 시도해보십시오 scrollView.contentInsetAdjustmentBehavior = .never your code ' – iPatel

답변

2

한 항목은 부모보기를 상단 레이아웃 가이드를 참조하고,되지 않았다. IOS 11에서는 동작이 달라야하며 레이아웃 가이드는 정적으로 유지되며 스크롤과 함께 움직이지 않습니다.

+0

상단 레이아웃 가이드에서 Superview로 제 제한을 변경 했으므로 이제는 잘 작동합니다! 감사 –