2014-11-06 3 views
0

아래 꽃 설정의 스크린 샷을 참조하십시오. 꽃 이미지는 자산 카탈로그에서 올바르게로드되었으며 다양한 시뮬레이터에서 앱을 실행하면 올바른 픽셀 해상도가 각 장치에 할당됩니다. 내 문제는 각 장치에서 같은 크기의 꽃 이미지 (크기가 똑같은 크기)를 얻는 방법입니다. 나는 제약과 프레임을 사용하여 다른 위치에 이미지를 배치하지만, 이미지가 제대로 확장하지하는 방법을 배웠습니다 - 다음 이미지는 (내가 할 수 있기를 원하는 최대 모의가 enter image description hereXcode 6 UIImageView가 정확하게 축척되지 않습니다

첫 번째 그림 참조하시기 바랍니다 각 장치에 올바르게 조정 꽃 이미지)

enter image description here

답변

2

모형으로 판단하면 이미지가 너비의 절반을 채우고 높이를 결정하기 위해 사각형의 종횡비를 유지하는 것처럼 보입니다. 이 방법에 접근하는 한 가지 방법은 AutoLayout을 사용하여 왼쪽 UIImageView와 오른쪽 자리 표시 자 (빈)보기를 만드는 것입니다. 왼쪽 뷰를 부모의 왼쪽 가장자리에 고정하고 오른쪽 뷰를 오른쪽 가장자리에 고정한 다음 서로 0 픽셀이되도록 설정합니다. 그런 다음 동일한 너비 제한 조건을 설정하십시오. 마지막으로, 이미지 뷰를 자체적으로 드래그하여 가로 세로 비율을 선택할 수 있습니다. IB에서 너비와 높이가 같다고 가정하면 사각형을 그대로 유지합니다. 등고선 구속 조건을 추가하면 필요할 때마다 다른보기에서 같은 높이를 유지해야합니다.

enter image description here Placeholder View Constraints

이 당신에게 50 %와 모드와 함께 당신의 모형에 당신에게 결과를 제공한다 채우기 화면 크기, 화면으로 설정 왼쪽 이미지보기를 제공

enter image description here. 사각형이 아닌 이미지가있는 경우 오버플로가 표시되지 않도록 UIImageView의 클립 하위 뷰를 확인하십시오.

+0

감사 Kleezy. 귀하의 모범 사례가 작동하지만 그것은 나에게 공간 보유자로서의 견해를 갖는 약간의 교착 상태처럼 보입니다. 저는 현재 모든 장치에서 올바르게 크기가 조정 된 4 개의 이미지가있는 appStore의 앱을 보유하고 있습니다. 여러 개의 스토리 보드로하기가 쉬웠습니다.이제는 하나의 스토리 만 가지고 계신 것 같습니다. 코드로 프로그래밍 방식으로 모두하는 것이 더 쉬울 것처럼 보입니다. (다중 스토리 보드가 실제로 누락되었습니다.) – pete

+0

자, autolayout을 사용하면 공간을 채우기 위해 _something_이 필요합니다. 나는 그 이미지보다는 당신의 견해에 더 많은 것이 있다고 가정합니다 - 그래서 아마 '자리 표시 자'는 실제로 그 자리에 자리 표시자가되지 않을 것입니다. BTW - 스페이서보기는 실제로 여기에서 권장됩니다. https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/AutoLayoutbyExample/AutoLayoutbyExample.html – kleezy

0

진짜 문제는 당신의 목표는 잘 정의되지 않은 것입니다. 에 대해 확장 한 내용? 화면 높이와 너비가 있습니다. 두 장치 모두에 대해 비율을 조정할 수 없습니다. 이미지가 왜곡 될 수 있습니다 (다른 장치의 가로 세로 비율이 다르기 때문입니다). 따라서 하나의 차원을 선택해야합니다.

귀하의 모형을 보면, 내가 원하는 것은 높이가 인 것을 기준으로합니다. 그렇다면 이미지 뷰에 수퍼 뷰의 높이의 고정 된 부분 인 높이 제한을 지정하십시오. 귀하의 모형에서 약 0.25 인 것으로 보이지만, 좋은 부분이라고 생각되는 것을 눈으로보아야합니다.

이제 이미지보기의 콘텐츠 모드가 가로 세로 맞춤 (또는 세로 채우기) 인 경우 가로 세로 비율을 왜곡하지 않고 이미지의 높이가 이미지보기와 함께 변경됩니다.

그러나 이미지보기의 가로 세로 비율을 가로 세로 비율과 같게 만드는 등 이미지보기의 다른 크기 (여기에서 너비)를 높이의 고정 된 비율로 설정하는 것이 가장 좋습니다 비율. 그 이유는 이미지보기 자체가 그렇더라도 이미지가 맨 위나 왼쪽을 더 이상 터치하지 않도록 이미지보기에서 가운데에 맞춰질 수 있기 때문입니다.

0
CGFloat screen_width = [[UIScreen mainScreen] bounds].size.width; 
your_imageview.frame = CGRectMake(0, 0, screen_width/2, screen_width/2); 
+0

Ive는 이미 시도했지만 차이가 없습니다. . – pete

관련 문제