에 다시 그릴하지 것은 내가 크기 만 내용으로 채우기 후에 알려져있는 여러 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에서는 동작이 달라야하며 레이아웃 가이드는 정적으로 유지되며 스크롤과 함께 움직이지 않습니다.
코드가 없으면 실제 문제는 어디에 있는지 알 수 있지만 새 UIView에 새 콘텐츠를 추가 할 때 타이머 또는 지연 메서드를 추가하려고 시도합니다. – iPatel
로그에 표시된 콘텐츠 크기는 1491이고 contentOffset은 옆의 스크롤 바. 그러나 scrollView 내의 뷰는 어떤 이유로 움직이지 않습니다. –
그런 다음 시도해보십시오 scrollView.contentInsetAdjustmentBehavior = .never your code ' – iPatel