2017-03-25 8 views
1

UIScrollViewUILabel 두 개가 있는데 실행 전의 내용을 알지 못합니다. 모든 내용은 UIView (작업 스크롤 용)에 내장되어 있습니다.동적 UIScrollView에 대한 제약 조건의 범위 제한

나는 또한 위에있는 UIImageView 있습니다. 그래서 레이아웃이

------------------- 
|     | 
| UIImageView | 
|     | 
|  UILabel  | 
|     | 
|  UILabel  | 
|     | 
|  UILabel  | 
|     | 
|  UILabel  | 
|     | 
------------------- 

모든 UIView의 수평 중심 및 (20)의 선행 및 후행 공간이 각 UILabel 지금 20

와의 상단과 하단 공간이 현재 제공하고있다 대략 같은 경우 문제. 화면 크기에 따라 UIImageView에 대해 다양한 상단 공간을 갖고 싶습니다. 고정 된 상단 공간이 20이라고하면, 모든 것이 작동합니다. 하지만 범위를 설정하려고하면 lessOrEqualTo 50 및 greaterOrEqualTo 10이라고 말하면 스크롤 뷰에 y 위치 또는 높이에 대한 제약 조건이 필요하다는 제약 조건 오류가 발생합니다.

그래서 제약 조건 오류없이 상단 공간의 범위를 어떻게 설정할 수 있습니까?

편집 :이 나의 현재의 제약이다는 : Constraints

+0

scrollview, uiimageview 및 모든 uilabels에 부여한 제약 조건을 추가 할 수 있습니까? –

+0

@agent_stack 내 제약 조건 이미지로 업데이트되었습니다. –

답변

0

당신은 두 가지 옵션이 있습니다. 1) 고정 된 이미지 높이와 조정 가능한 상단 공간을 가질 수 있습니다. 2) 조정 가능한 이미지 높이와 고정 된 상단 공간을 가질 수 있습니다.

그렇지 않은 경우 어떻게 이러한 요소를 결정할 수 있습니까? 그냥 생각해.

+0

언급하는 것을 잊었지만, 그렇습니다, 내 이미지 높이가 고정되어 있습니다. 내 질문 업데이트 예정 –

0

실제로는 UIScrollView 높이가 그 내용으로 계산됩니다.

scrollview.height = imageView.top + imageView.height + label1.top + label1.height + label2.top + label2.height + label2.bottom 

, 여기에 예를 들어,이 모든 것이 당신이 그 값을 변경할 수 런타임에 일정해야하지만, 그것은 당신이 50 greaterOrEqualTo 10 lessOrEqualTo 을 줄이 제약 같은 동적 기운 다. 이 경우 위에서 설명한대로 scrollview.height을 술술 할 수 없기 때문입니다.

제안

  1. imageView.top의 상위 제약의 outlet을 가지고 그 constant 값을 변경합니다.
  2. 승수를 imageView.top으로 지정하십시오. 화면 높이에 따라 자동으로 정렬됩니다.

자세한 내용이나 도움이 필요하면 문의하십시오.

희망이 내 답변에 도움이됩니다.

+0

두 번째 제안에 대해 자세히 설명해 주시겠습니까? –

+0

@JasonMcKenzy에 대한 가장 좋은 설명이 여기에 나와 있습니다 (http://stackoverflow.com/questions/26964139/understanding-multiplier-in-auto-layout-to-use-relative-positioning) –