2013-06-27 2 views
0

iPhone 및 iPad에서 실행되는 앱이 있는데,이 앱의 의도 된 장치는 대부분 iPad mini를 제외한 망막 장치입니다. 이 앱에 포함 할 이미지가 많습니다. @ 2x 이미지로만 이동하기로 결정했다면 iOS가 망사가 아닌 다른 장치로 다운 그레이드 할 것인가하는 질문을 던지십니까? 그래서 나는 망막 이미지 만 출하하니? 그것이 맞다면 구현하는 것은 나쁜 생각입니까?망막 이미지, 비 망막 장치

+1

나는 "rescale @ 2x"라고하는 어딘가에서 얻은 작은 Mac 도구가 있습니다. @ 2x 이미지를 가져 와서 "일반"복사본을 생성하므로 둘 다 가질 수 있습니다. –

답변

0

iOS에서 해당 이미지를 다운 그레이드하지 않습니다. 그러나 이미지 뷰의 프레임을 신중하게 설정하면 문제가 발생하지 않습니다.

+0

정말요? 그것은 다운 그레이드를하지 않을 것인가? 그것은 일반적으로 비 망막에서 망막 이미지로 업그레이드합니까? 다운 그레이드 할 수 있습니까? –

+0

아니요, 다운 그레이드하거나 업그레이드하지 않습니다. 그러나 당신의 프레임이 작고 이미지가 크다면, 더 작은 프레임과 더러움에 더 큰 이미지를 수용 할 것입니다. – Apurv

0

contentMode이 이미지를 확장 =이 이미지 뷰가 아닌 망막

에 올바르게 표시 배율을 조정하지만 몇 가지 문제가 될 경우

1) 비 망막에 당신이 축소 표시하면 망막 이미지 장치를 사용하면 이미지에 가장자리가 흐리게 표시됩니다. 따라서 UI 용으로이 이미지를 사용하려면 좋지 않은 아이디어입니다. 당신은 단지 배 이미지 @ (uibuttons 예)에 대한 경우

2) 언젠가 엑스 코드 스토리 보드가 제대로 이미지의 크기를 조절하지 않습니다

0

당신이 인터페이스 빌더에 이미지를 지정하는 경우, 당신은 UIImageView의 이미지 속성을 설정 예를 들어, iOS는 고해상도 "2x"이미지라는 것을 알 수 없습니다. 실제로 망막 디스플레이에서 iOS는 [email protected]@2x.png이라는 이미지를 찾습니다. 찾지 못하기 때문에 이미지의 배율 인수를 1.0으로 설정합니다.

contentMode 속성 (XCode의 "모드")은 이미지의 크기 조정이 UIImageView의 제약 조건에 맞게 발생하는지 결정합니다. 모드를 "Aspect Fit"으로 설정하여 망막 및 비 망막 디스플레이 모두에 필요한 고해상도 이미지를 얻을 수 있습니다. 일반적으로 인터페이스 빌더에 표시된대로 이미지가 표시됩니다.

이미지를로드하는 데 UIImage의 imageNamed 또는 유사한 기능을 사용하고 있는데 image ("image.png"은 존재하지 않지만 "[email protected]"는 있지만 "iOS"는 실제로 찾을 것입니다) 비 망막 디스플레이의 이미지. 배율은 1.0이됩니다. 이전처럼보기에 맞게 크기를 조정해야합니다. 이미지는 망막 장치에서 정상적으로 작동하며, 배율은 2.0으로 설정됩니다. iOS는 "2x"이미지를 먼저 찾고, 다른 파일이 존재하는지 여부는 중요하지 않습니다.

imageNamed에 애플의 문서에서 경우 : 장치의 화면은 1.0의 규모가있는 경우 나중에 아이폰 OS 4를 실행하는 장치에

이 동작은 동일합니다. 화면의 눈금이 2.0 인 경우 이 방법은 먼저 동일한 파일 이름 에 @ 2x 접미사가 추가 된 이미지 파일을 검색합니다. 예를 들어, 파일 이름이 단추 인 경우, 먼저 @ 2x 단추를 찾습니다. 2 배가되면 그 이미지를 로드하고 반환 된 UIImage 오브젝트 의 scale 속성을 2.0으로 설정합니다. 그렇지 않으면 수정되지 않은 파일 이름을로드하고 축척 속성을 1.0으로 설정합니다. 다른 배율로 이미지를 지원하는 에 대한 자세한 내용은 iOS App 프로그래밍 가이드를 참조하십시오.

가능한 한 실제로는 망막 이미지와 비 망막 이미지를 모두 포함해야합니다. 필요한 것보다 고해상도 이미지를 사용하면 메모리와 성능에 부정적인 영향을 미칩니다.

관련 문제