2014-02-19 2 views
1

UIView가 480px 또는 568px 높이 일 때 자동으로 크기 조정 UIImageView 인 UIImageView를 내 ViewController의 UIView에 넣으려고합니다. 그러나 그것은 IB에서 매우 복잡한 것처럼 보입니다!제한 사항이있는 interfaceBuilder에서 UIImageView의 크기를 조절하는 방법

내 View 컨트롤러에 일반보기를 넣으면 자연스럽게 크기가 조정됩니다. 하지만 내 UIImageView 함께 않습니다. scale을 채우더라도 채우기 모드. 아무것도 안 일어날거야.

그래서 저는 제약 조건을 사용해야 할 것 같습니다. 하지만 문제는 UIImageView에 X 높이 크기를 알려주는 간단한 제약 조건을 추가 할 때입니다. IB는 오류가 있다는 것을 알려주고보기의 다른 구성 요소에 많은 제약 조건을 추가하라고합니다. 그것은 전파되고 있으며 나는 수천 가지의 제약으로 끝을 맺고 있습니다. UIView를 상위 컨테이너로 크기를 조정하고 IB가 아무 것도 묻지 않는 다른 구성 요소에 제약 조건을 추가해야한다고 말하기 때문에 혼란 스럽습니다.

코드에는 두 줄만 있습니다! IB에서 왜 그렇게 복잡한 지 이해할 수 없습니다. 누군가가 제 부모님에 따라 UIImageView 크기를 조정하는 방법을 설명해 주시겠습니까?

나는 Google에서 많은 연구를했고, 나를 도왔다. 아무도 완전한 이미지 뷰 모드를 사용할 필요가없는 것과 같습니다.

다른 viewController에서 전체 UIImageView에 대한 제약 조건을 이미 성공적으로 수행했음을 유의하십시오. 그러나 이것은 모호합니다. 그러나 지금 나는 왜 내가 똑같은 일을 할 때 IB가 많은 제약을 많이 추가하려고하는지 모른다.

답변

1

높이/너비 제약 대신 슈퍼 뷰와의 거리가있는 제약 조건 (보기 컨트롤러)을 사용하는 것이 더 좋을 것이라고 생각합니다. 이미지보기를 선택하고 다음과 같은 제약 조건을 추가

enter image description here

이미지보기가 자동으로 모두 3.5 "4"아이폰의 화면을 채울 것입니다. 그런 다음 원하는 효과를 얻으려면 이미지 뷰 contentMode을 가지고 놀아 라.

+0

안녕하세요. 빠른 답장을 보내 주셔서 감사합니다. 나는 당신이 한 것을 시도했습니다. 그러나 uiimageView가 4 가지 제한을 추가하면 전혀 확장되지 않습니다. 그리고 3.5 인치와 4 인치 사이를 전환 할 때 "uiimageView가 제한을 가해 야합니다"라고 경고합니다. 내가 고칠 경우 다시 토글 할 때 경고가 나타납니다. –

+0

인터페이스 빌더에서 경고 메시지가 표시되지만 시뮬레이터에서 제대로 작동해야합니다. 실행 해 보셨습니까? –

+0

그래, 작동! 와우, 너 마술사 야. 나는 그것이 모든 경고와 함께 나에게 그렇게 어둡게 보였던 이래로 나 자신으로 그것을 발견 할 수 없었다! 고맙습니다. –

1

autolayout 또는 오래된 autoresizing 마스크를 사용하면 문제를 해결할 수 있습니다.
Marko는 솔루션을 지적했지만 요구 사항에 따라 뭔가 빠졌습니다. contentMode을 사용하면 이미지를 적합하게 맞추거나 화면 비율을 유지하거나 유지하지 않고도 UIImageView의 경계를 채울 수 있습니다.
지난 한 가지 문제는 3.5 인치 용과 4 인치 용 2 가지 이미지를로드하는 것이 었습니다. Apple은이 명명 규칙을 사용하여 런타임에 올바른 이미지를로드 할 수 있다고 말합니다.

  • [email protected]~ipad.png에게
  • 이름-568h의 @ 2 배 ~ 아이폰을 ipad.png
  • [email protected]~iphone.png
  • 이름 ~을 iphone.png

    • 이름 ~. png (iPhone 5)

    이것은 망막과 다른 장치 (iphone 또는 ipad)에서 잘 작동하지만 iphone5 규칙은 시작 이미지에서만 작동합니다.
    이제는 단 한 가지 기회가 남았습니다. 화면 크기를 확인하고 런타임에 올바른 것을로드하십시오. 제 의견으로는 이것은 대단한 해결책이 아닙니다.
    Xcode 5에서는 이미지 자산 기능을 사용하여 특정 화면 크기에 적합한 이미지를로드 할 수 있습니다. 새로운 이미지 세트를 추가하고 속성 관리자에서 장치 특정으로 변환 한 다음 해당 슬롯에 이미지를 드래그하면됩니다.
    enter image description here

  • 관련 문제