2014-09-10 2 views
1

나는 autolayout (마지막으로)을 배우려고 애를 썼다. 뷰에 대한 모든 내용을 담고있는 세로로 스크롤하는 UIScrollView를 갖고 싶습니다. UIImage 뷰를 scrollview 상단에 고정하고 이미지를 정사각형으로 유지하려고합니다 (scaleToFill). 기본적으로 나는 (단지 내가 자동 레이아웃과 함께하고 싶어)이 작업을 수행 할 수 :UIScrollView 내에서 Autolayout을 사용하여 UIImage 뷰를 사각형으로 스케일하는 방법

enter image description here

내가 화면 범위 내에서 최대한의 가로 세로 비율을 유지하기 위해 이미지를 얻을 수 없습니다. 종횡비 제한을 추가 할 때마다 imageView는 600 포인트 (생각하는 PNG의 너비)처럼 커지지 ​​만 화면의 너비만큼 넓히길 원합니다.

UIImageView에 대한 제약 조건을 올바르게 설정하고 있다고 생각합니다. scrollView를 없애고 뷰에 직접 imageViw를 놓으면 원하는대로 할 수 있기 때문입니다. 속임수가 scrollView 안에 넣는 중입니다.

이 내가 현재이 설정 한 방법입니다

enter image description here

스크롤 뷰의 4 수평/수직 공간 제약이 모든 크기 때문에 일정한 0

+0

이미지의 원래 종횡비를 유지 하시겠습니까? 그러면 크기가 화면 경계보다 큰 경우 스크롤보기에서 스크롤됩니다. 아니면 프레임에 딱 맞습니까? 후자의 경우, 어쨌든 왜 스크롤 뷰가 필요합니까? – Petar

+0

나는 이미지의 종횡비를 유지하고 싶지 않다. 나는 그것이 항상 정사각형이되기를 원한다. 사용자가 아래로 스크롤하여 읽을 수있는 이미지 아래에 많은 콘텐츠를 넣을 것입니다. –

+0

왜 스크롤 뷰를 이미지 아래에 두지 않습니까? – Petar

답변

0

로 설정 UIScrollView은 콘텐츠에 따라 다르므로 UIImageView 하위보기의 크기를 종속적으로 설정할 수 없습니다.

UIImageView의 종횡비 제한을 제거하고 고정 너비 1을 사용해야합니다. UIScrollView의 다른보기에 너비가 달라 지도록 너비가 UIImageView이 될 수도 있습니다.이 너비는 고정 너비 또는 다른 모호한 너비 중 하나입니다.

인터페이스 빌더의 내장 크기 값으로 자리 표시자를 사용하는 것을 잊지 마십시오.

희망이 도움이됩니다.

+0

그럼 IB에서 scrollview의 contentSize를 수동으로 설정할 수 있습니까? 일반적으로 프레임과 콘텐츠 크기 만 설정했습니다. 그 인스턴스를 만드는 프레임을 기반으로 전체를 조정하도록 지시 할 방법이 없습니까? 본질적인 크기 값으로 자리 표시 자에 대한이 비즈니스는 무엇입니까? 나는 그것에 대해 다른 게시물을 보았습니다. 그러나 나는 그것이 무엇을하는지/이유가 무엇인지를 아직 이해하지 못하고 있습니다. –

+0

모든 후속 질문에 대해 죄송합니다. –

+1

scrollView는 AutoLayout과 함께 사용할 때 약간 다르게 동작합니다. 여기에서 읽을 수 있습니다 : https://developer.apple.com/library/ios/technotes/tn2154/_index.html. 자리 표시자를 내장 크기 값으로 사용하는 이유는 IB에서 설정 한 크기로보기를 볼 수 있기 때문입니다. 기본값을 선택하면 IB가 불평 할 것입니다. IB에서 : "디자인 타임을 설정하면 본질적인 콘텐츠 크기는 Interface Builder에서 편집하는 동안보기에만 영향을 미칩니다. 런타임에이 본질적인 콘텐츠 크기를 가지지 않습니다." – Petar

관련 문제