나는 자동 레이아웃 전에 사소한 스크롤보기 설정을 달성하기 위해 혼합 및 순수 자동 레이아웃 접근법 에 대한 다양한 솔루션을 시험하는 데 이틀을 보냈으며 현재 공식적입니다. 너무 어리석어 야합니다. 나는 이것을 스토리 보드에서 주로 설정하고 있습니다 (잘, 그것은 그대로입니다).
도움을 청합니다.
뷰 트리 :
UIView
-UIView
-UIView
..-UIScrollview
...-UIButton
...-UIButton
...-UIButton
버튼은 가로로 스크롤해야합니다 (왼쪽에서 오른쪽으로 또는 그 반대로). 사람이 할 수 주십시오 나를 사용하여이 순수한 자동 레이아웃을 달성하기 위해 제약 조건을 설정하는 방법을 알려 ???
-
나는 혼합 접근법을 다음과 같이 시도했다.
UIView
- UIView
- UIView
..-UIScrollview
...-UIView (contentview)
....-UIButton
....-UIButton
....-UIButton
... 설정 고정 너비와 높이와에 대한 제약 contentview
과 translatesAutoresizingMaskIntoConstraints
애플의 기술 문서에 따라 설정. 버튼과 스크롤보기는 제약 조건을 사용하여 설정됩니다. 이것은 스크롤 뷰 스크롤 (yay)을 얻지 만 아아, 너무 멀리 스크롤됩니다! 내가 알 수있는 한, 스크롤 너비는 내가 contentview를 설정 한 것보다 두 배가됩니까 ??? !!! ???
contentview
유무에 관계없이 순수한 자동 레이아웃 접근법을 시도했습니다 . 를translatesAutoresizingMaskIntoConstraints=NO
제외한 모든 보기는 입니다 self.view
. 버튼의 너비 / 높이 제한은 고정되어 있으며 스크롤보기의 네 가장자리에 모두 고정되어 있습니다. 스크롤이 없습니다.
그래서 나는 그것이 올바르게 작동하지 않는 이유에 대해 완전히 당황했습니다. 도움이 필요하면 다른 정보가 필요하면 문의하십시오!
솔루션이있는 스크린 샷 -buttonZ 제약 조건 :
@ Jamie Forrest 편집 그래서 솔루션은 마지막 버튼의 잘못된 후행 제약 조건으로 판명되었습니다. 6441 대신 내가 설정 한 값은 -6441입니다. 까다로운 점은 스토리 보드에서 값을 설정할 때 핀 도구 모음에 두 가지 옵션이 있다는 것입니다.
현재 캔버스 값은 음수이고 (스크롤이 없음) 아래 옵션은 양수입니다 (스크롤 활성화 중). 이것은 내가 바보가 아니지만 적어도 반맹 인 것 같아요. 내 방어를 위해 XCode가 "잘못된"설정에 대한 오류를 표시하지 않는 것이 다소 혼란스럽지 않습니까?
다시 편집 이제 재미있다 ... 후행 값을 -6441 (스크롤 없음)에서 6441 사용 스크롤로 변경. 그러나 나의 오랜 친구 인 "너무 많은 contentsize"가 돌아 왔으며, 콘텐츠 크기가 두 배로 커졌습니다! 올바른 컨텐츠 스크롤을 얻는 솔루션은 후행 제한 조건을 ZERO! 스토리 보드에서 작업 할 때 분명하지 않지만 @Infinity James '코드를 보면 이것이 있어야합니다.
contentSize
하도록 설정할 수 없습니다 UIScrollView
. 그리고 그것은 contentSize
당신이 얼마나 많이 스크롤 할 수 있는지를 정의합니다. 따라서 결국 어딘가에 수동으로 설정해야합니다. 나머지의 경우 레이아웃 구속 조건을 사용하여 서로에 대해 뷰 프레임을 설정할 수 있습니다.