2011-08-10 3 views
5

나는 이미지 리소스의 대부분이 별도의 리소스 번들에 저장되어있는 애플리케이션을 가지고 있습니다. 그럴만 한 이유가 있습니다. 이 리소스 번들은 메인 애플리케이션 번들과 함께 프로젝트에 추가되고 인터페이스 작성기에서 내 NIB를 디자인 할 때 모든 이미지가 IB 내부에서 볼 수 있습니다 (즉, UIImageView의 드롭 목록에 나타나고 UI에 올바르게 표시됩니다.)). 그러나 시뮬레이터에서 내 앱을 실행하면 모든 이미지가 누락됩니다. 메인 애플리케이션 번들 외에도이 추가 리소스 번들 내부의 이미지를 찾기 위해 UIKit에 지시 할 수있는 방법이 있습니까?IB에서 볼 수 있지만 런타임에는 보이지 않는 별도의 번들에있는 리소스

viewDidLoad에서 수동으로 이미지를로드 할 수 있지만 Interface Builder를 사용하여 해당 NIB의 디자인/스킨을 더 쉽게 변경할 수있는 방법을 찾고 있습니다.

업데이트 : 해당 번들의 이미지 파일은 IB의 드롭 목록에서 바로 사용할 수 있지만 런타임에는로드되지 않습니다. 그러나이 같은 IB의 번들 이름으로 자신의 이름을 앞에 경우 :

Sceenshot

그런 다음 그들은 런타임에 제대로로드하지만, IB는 그들에게로 큰 파란 물음표를 표시합니다.

이제 질문은 - 두 세계를 최대한 활용하고 IB (디자인 타임)와 런타임에서 이미지를 올바르게 표시하는 방법입니다.

+0

번들을 말할 때 실제로'.bundle'을 의미합니까? 어떻게 이것을 Xcode 프로젝트에 추가 했습니까? 프로젝트 탐색기의 스크린 샷을 볼 수 있습니까? – jtbandes

+0

예, 실제 .bundle입니다. 다른 파일처럼 프로젝트에 추가 할 수 있으며 IB는 자동으로 컨텐츠를 선택합니다. 다음은 프로젝트 탐색기의 스냅 샷입니다. [Project Navigator] (https://img.skitch.com/20110810-jeyxrq8m35w939a41yjn1amwg8.jpg) –

+0

이 사람들은 그들이 작동하도록 조개 림입니다. http://stackoverflow.com/questions/7733565/ ios-how-to-use-images-in-custom-bundle-in-interface-builder를 사용하여 ios6 SDK와 함께 작동시키지 못했습니다. –

답변

3

동일한 문제가 발생했으며 번들 타겟을 어셈블 할 때 Xcode에서 이미지를 컴파일하는 방식 때문일 수 있습니다. 번들 타겟은 iOS에서 완전히 지원되지 않으므로 Mac OS X 타겟으로 생성해야합니다. 이로 인해 문제가되는 빌드 설정 즉, COMBINE_HIDPI_ARTWORKYES으로 설정됩니다. 그 결과 일반 및 @2x 변형이 번들의 단일 tiff 파일로 결합됩니다. 결과 파일은 Mac OS에서 지원되지만 iOS에서는 지원되지 않습니다.

(팁은 this answer입니다.)

이 문제를 해결하려면 파일 탐색기에서 번들 생성 프로젝트를 선택하고 번들 대상을 선택한 다음 빌드 설정 탭으로 전환하고 앞에서 설명한 설정을 검색하십시오. 그런 다음 전체 행을 선택하고 을 삭제하거나을 삭제하거나 NO으로 설정하십시오.

그 시점에서 특별한 일을하지 않고도 IB와 코드 모두에서 이미지를 사용할 수 있어야합니다 (.xib와 이미지가 동일한 번들에 있는지 확인하는 것 외에는).

관련 문제