Programing

장치의 실행 화면에서 UIImageView 이미지가 누락 됨

lottogame 2020. 3. 16. 08:14
반응형

장치의 실행 화면에서 UIImageView 이미지가 누락 됨


Xcode 7에 내장 된 iOS8 이상을 지원하는 앱이 있으며 시작 화면에 XIB를 사용하고 있습니다 (시작 이미지가 없습니다). 이보기에는 앱 버전의 단일 UILabel과 Images.xcassets에있는 이미지가있는 2 개의 UIImageView : 로고 및 스플래시 이미지가 포함됩니다.

응용 프로그램을 시작할 때 UILabel과 로고 이미지가 올바르게 나타나지만 iOS9가 설치된 iPad Air 2에서 앱을 실행하면 스플래시 이미지가 나타나지 않습니다. iOS8을 실행하는 Air 및 Mini와 iPad 2, iPad Air 및 iPad Air 2 용 iOS9 시뮬레이터에서 테스트했으며 이미지가 모두 올바르게 표시됩니다.

나는에 무슨 일이 일어나고 있는지 알아낼 수 있는지 확인하기 위해 몇 가지 기본적인 문제 해결을 실행하지만 난 그게 내가 일하고 이미지와 실패한 것 하나 사이에 볼 수있는 유일한 차이는 해결할 수 없었던 나는에 추가 자산...

내가 아는 것에 대한 요약은 다음과 같습니다.

  • 스플래시 이미지의 UIImageView가 올바른 위치에 올바른 크기입니다. 확인하기 위해 배경색을 녹색으로 설정했기 때문에 이것을 알 수 있습니다. 보기가 있지만 이미지가 나타나지 않습니다. 그래서 나는 그 견해가 비난되지 않는다고 가정합니다.

  • 로고 이미지도 사용하도록 스플래시 이미지의 UIImageView를 설정하면 로고 이미지가보기에 올바른 위치에 나타납니다. 이것은 또한 그 견해가 비난되지 않는다고 가정하게합니다.

  • 스플래시 이미지보기에서 사용하는 UIImage는 앱의 다른 곳에서 사용되며 다른보기에서는 잘 나타납니다 (로고 이미지는 앱의 다른 곳에서도 사용되며 잘 나타납니다). 따라서 이미지가 유효하고 다른보기에 이미지를 표시하는 것은 문제가되지 않는다고 가정합니다.

  • xcassets 파일의 로고 및 스플래시에 대한 UIImage 설정이 동일하다는 것을 확인했습니다. 그것들은 Universal, Any width and height, multiple scale factor, 기본값으로 렌더링됩니다. 한 가지 차이점이 있습니다-로고에는 1x, 2x 및 3x 배율이 있고 스플래시 이미지에는 1x 및 2x 만 있지만 UIView에서는 1x 및 1x 및 2x 값만으로 UIImage를 사용해 보았습니다. 얼마 전에 프로젝트에 추가).

  • 다른 크기 또는 형식 (PNG 및 JPG)의 다른 이미지를 xcassets에 추가하고 스플래시 이미지에 대해 UIImageView에서 해당 UIImage를 사용하면 표시되지 않습니다.

  • XIB 파일에 다른 UIImageView를 추가하고 이미 xcassets에 있던 UIImage를 할당하면 이미지가 로딩 화면에 나타납니다.

  • 로고에 사용 된 이미지 파일을 복사하고 이름을 바꾸고 프로젝트에 추가 한 다음 스플래시보기에서 해당 UIImage를 사용하면 표시되지 않습니다.

  • 프로젝트를 청소하고 개발 컴퓨터를 다시 시작한 다음 Air 2에서 앱을 삭제하고 문제가 발생한 경우 다시 설치하려고했습니다.

이 마지막 세 단계는 프로젝트 파일의 수명에서 특정 시점 이후에 이미지가 추가되는 데 문제가 있다고 생각합니다. 어제 Xcode 7로 업데이트하는 동안 스플래시 이미지는 원래 Xcode 6에 추가되었지만 로고 이미지 (Xcode 6에도 추가)는 몇 달 전에 추가되었습니다.

로고 이미지와 스플래시 이미지의 json 파일을 살펴본 결과 동일한 형식으로 나타납니다. 또한 pbxproj 파일을 탐색하여 차이점을 찾았으며 아무것도 볼 수 없습니다.

왜 누군가가 왜 시작 화면에 Air 2에 추가하는 새로운 이미지가 표시되지 않을지 궁금해하고 있습니까? 모두 표시되지 않는 이미지와 관련하여 읽은 다른 질문은 Launch Images 또는 관련 클래스가있는 XIB 파일의 이미지와 관련이있는 것 같습니다.


껐다가 다시 켜십시오.

진심으로, 장치를 다시 시작하십시오 – 그것이 나를 위해 고쳐 준 것입니다.

작동하지 않는 것은 다음과 같습니다.

  • 파생 데이터 정리
  • 프로젝트 청소
  • 기기에서 앱 제거
  • Xcode 재시작
  • 컴퓨터 재시작

이전 관측치 :

다른 사람들과 마찬가지로,

  • 시뮬레이터에서 잘 작동
  • 기기 (iPhone 5S, iPad Air)에서 작동하는 데 사용
  • 코드 변경 (git reset --hard HEAD를 통해 확인 됨)은 없지만 작동이 중지되었습니다.

내가 작동을 멈춘 첫 번째 빌드를 시작한 것을 기억하는 것은 iPhone이 실행되는 동안 플러그를 뽑는 것입니다. 관련이 있는지 확실하지 않습니다.

그러나 git reset이 수정하지 않으면 (모든 클린 단계가 작동하지 않는 경우) 이것이 다른 곳에서 캐시되어야한다고 알려줍니다. 아마도 .gitignored 파일 중 하나에 있습니까? ( Xcode 프로젝트에 Git ignore 파일을 사용 하고 있습니다 )

하나의 UIImageView (3 개가있는 UIView)에서는 효과가 있었지만 다른 UI에서는 그렇지 않은 해결 방법은 이미지를 .xcassets 파일에 넣는 것입니다. 일반 이미지 파일로 되 돌리면 수정 프로그램이 실행 취소되지 않았습니다. (캐싱 오류처럼 느껴집니다.)

업데이트 : 참조 – 장치를 다시 시작하면 문제가 해결됩니다. 잘못된 비트 맵 데이터가 장치 자체에 캐시되고 있다는 느낌이 들었습니다.

레이더 : http://openradar.appspot.com/23534818


"나를위한 해결책은 스토리 보드의 UIImageView에 대해"그래픽 컨텍스트 지우기 "상자가 선택 해제되어 있는지 확인하는 것입니다. 이것을 바꾸면 해결되었습니다." 다른 솔루션은 나를 위해 일하지 않았습니다. 애플 개발자 포럼 에서 가져 왔습니다

여기에 이미지 설명을 입력하십시오


iPhone 6에서 정확히 같은 문제가있었습니다.

매우 이상한 사실은 크기, 압축, 색 공간이 같은 내 이미지에서 다른 이미지를 사용할 수 있다는 것입니다.

왜 작동하지 않는지 알 수는 없지만 해결책을 찾았습니다. 파일을 images.xcassets 외부에 놓고 Interface Builder에서 전체 이름 (확장자 포함)을 사용하십시오.

스토리 보드 샘플의 스플래시 스크린

이 도움을 바랍니다!


Xcode 7.3.1 및 iOS 9.3.4에서 다음과 같은 일련의 작업으로 인해 문제가 해결되었습니다.

  1. 빌드 정리 (⌘ + ⇧ + K)
  2. Xcode 닫기
  3. iOS 기기 강제 재설정 (전원 + 홈 버튼 재부팅)
  4. Xcode를 다시 시작하십시오-준비가 완료되면 인덱싱을 완료하고 장치에서 빌드하십시오.

다른 많은 답변은 장치 재부팅 및 / 또는 재구성 및 / 또는 재설치가 해결책이라고 제안합니다.

이 답변은 우리 중 일부에게는 효과가 있지만, 이러한 이유는 앱이 캐시 된 스냅 샷을 "다시 가져 오거나"다시 작성해야하기 때문입니다.

캐시 된 스냅 샷은 스토리 보드 이미지가 포함 된 자산 카탈로그를 포함하여 지원 데이터가 메모리에로드되기 전에 앱에서 이미지를 표시하는 데 사용됩니다.

@jaga 의이 SO 답변 은 솔루션이 아닌 장치의 시작 화면에 UIImageView가 누락 된 이유에 대해서는 해결책을 제공하지만 시뮬레이터는 아닙니다.

배경

최근에 "Launch Screen.storyboard"파일에서 사용자 정의 글꼴을 사용하려고했습니다.

@TimCamber의 SO 답변읽은 후에 내가 명확하게 알 수 없었던 이유 는 조금 더 연구하고 테스트해야했습니다.

시작 화면 스토리 보드 파일에 사용자 정의 글꼴이 포함되지 않은 이유는 자산 카탈로그 내의 이미지가 포함되지 않은 것과 같습니다.

앱은 실행 화면 스토리 보드 파일에서 앱 시작 화면의 세로 및 가로 스냅 샷을 준비하고 현재 번들로 앱 번들에 저장합니다.

  • /Library/Caches/Snapshots/<<app_bundle>>/
  • /Library/Caches/Snapshots/<<app_bundle>>/downscaled/.

이 프로세스는 사용자 정의 글꼴 및 자산 카탈로그를 포함하여 지원 파일을로드하기 전에 완료됩니다.

해결책

@jaga의 솔루션을 따라 위에서 언급했듯이 문자 그대로 필요한 것은 다음과 같습니다.

  1. (구식 학교) 이미지 번들 (.PNG)을 앱 번들에 추가합니다 (아래 스크린 샷에서 볼 수 있듯이 이미지 서브 디렉토리의 Supporting Files 서브 디렉토리 아래에 이미지 파일을 추가했습니다).

Xcode의 Project Navigator에서 관련 디렉토리의 스크린 샷

  1. Launch Screen Storyboard 파일의 UIImageView 객체에서 해당 이미지를 참조하십시오.

Xcode의 속성 관리자에서 UIImageView에 대한 이미지보기 섹션의 스크린 샷


나는 같은 문제를보고 있었다. 기기를 재부팅 (iPhone 6)하고 기기에 앱을 재 구축하는 것이 유일한 문제입니다. 다른 많은 팁과 제안을 시도했지만 다른 방법은 없습니다. 재부팅 + 재구성 만 도움이되었습니다.


내 솔루션 @iOS 11.x :

  • .jpg대신 이미지를 사용하십시오 .png. 이미지 파일 크기가 중요하다고 생각합니다.
  • (선택 사항) 이미지 파일을 프로젝트 디렉토리에 넣지 말고 .xcassets;

TestFlight에서 설치된 앱과 동일했습니다. 응용 프로그램 삭제-> iPhone 다시 시작-> 응용 프로그램 재설치 가 저에게 적합합니다. 앱을 다시 설치하거나 장치를 다시 시작해도 도움이되지 않았습니다.


같은 문제가 발생했지만 장치를 다시 시작해도 도움이되지 않았습니다. 나를 위해 일한 것은 시작 스토리 보드에서 UIImageView를 삭제하고 새로운 것을 추가하는 것이 었습니다.


장치를 껐다가 다시 켜 보셨습니까? 해.


나를 위해 일한 것은 시뮬레이터 메뉴에서 내용 및 설정 재설정 ... 을 선택하는 것이 었습니다.

내용 및 설정 메뉴 재설정


Image.xcassets에서 이미지를 가져 와서 프로젝트에 다시 추가하십시오. 그것은 나를 위해 일했다.


나는 iPhone 5s 장치를 사용하고 있으며이 문제도 충족시킵니다.

나는 그것을 고쳐 :

  • 드라이브 데이터 제거

  • 프로젝트 청소

  • Xcode 재시작

  • 내 장치에서 프로젝트를 제거

  • 5를 다시 시작하십시오.

메모리를 사용하는 것이 Xcode의 잘못이라고 생각합니다. 시스템은 Xcode에 약간의 메모리를 할당하여 Xcode가 점심 이미지를 그리는 데 실패했습니다 (컴퓨터에서 Xcode가 몇 주 동안 닫히지 않고 실행되었습니다)


iPad 및 iPhone 장치가있는 Xcode 7 에서도이 정확한 문제가있었습니다. 의미가 없지만 이미지 뷰뿐만 아니라 이미지 뷰의 강조 표시된 이미지를 images.xcassets의 동일한 이미지로 설정하여 대부분의 시간을 해결할 수있었습니다.


Launchscreen은 Assets.xcassets의 이미지 만 지원한다고 생각합니다.


그것은 나를 위해 일했다.

xcode clean de project에서 첫 번째.

시뮬레이터를 사용하는 경우 앱을 삭제하고 다시 시작하십시오.

기기를 사용하는 경우 앱을 삭제하고 기기를 다시 시작하십시오.


모바일에서 앱을 제거한 다음 모바일을 다시 시작하고 앱을 다시 설치하십시오. 이제 문제가 해결 될 것입니다


ImageView를 선택한 다음 속성 관리자 탭> 이미지보기> 이미지> 이미지 이름에서 이미지 확장명 (.png 또는 .jpg)을 제거하십시오.

launchscreen.storyboard에서 이미지는 나타나지 않지만 장치에는 있습니다. 이것은 나를 위해 일했습니다.


Xcode를 다시 시작하면 나에게 도움이되었습니다.

하지 않은 것 :

  • 클린 빌드 폴더
  • 기기 또는 시뮬레이터를 다시 시작합니다 (이미지가 보이지 않음)

iOS의 버그 인 것 같습니다. 때때로 시스템 애니메이션이 사라졌습니다.

이제 iPhone을 재부팅하면 효과가 있습니다.


제 경우에는 이미지 이름 이었습니다. 테스트 목적으로 이전 시작 화면 중 하나 인 LaunchScreen.xib에
이미지를 추가했습니다 Default-568h@2x.png. iPhone X Simulator를 빌드하고 있는데 이미지가 표시되지 않았습니다.

이름을 중립 (MyImage.png)으로 변경하면 문제가 해결되었습니다.

@2x이뿐 만 아니라 문제의 일부인 것 같습니다 -568h. -812h@3x장치 에 어떤 의미가 있습니다.


이것이 너무 중요 비어 있어야합니다 !Launch Screen File

여기에 이미지 설명을 입력하십시오


간단한 해결책은 PNG 대신 JPG를 사용하는 것입니다.


imageView 실행 화면 스토리 보드와 동일한 문제가 있습니다. 프로젝트에서 그림 참조를 제거하고 이미지의 이름을 바꾸고 다시 프로젝트에 추가했습니다. 모든 것이 완벽하게 작동합니다.


프로젝트 이미지 삭제 2. 이미지 이름 변경 3. 프로젝트에 파일 이미지 추가

그것은 나를 위해 일했다.


iPhone 6의 iOS 10 및 시뮬레이터 에서도이 문제가 발생했습니다. 내 이미지가 폴더에 있었고 문제가 된 것 같습니다. Xcode의 폴더에서 이미지를 제거하고 프로젝트의 기본 디렉토리에 배치하여 문제를 해결했습니다.


나는 같은 경험을합니다. 이미지 해상도를 300 픽셀 / 인치에서 72로 변경했습니다.


다음은 나에게 도움이되었습니다.

  • "시작 화면 파일"을 다른 xib로 변경
  • 앱을 실행
  • xib를 다시 바꾸다

또한 매우 중요 : 다른 탭에서 xib가 열리지 않았는지 확인하십시오.


나는 나를 위해 일한 간단하지만 급진적 인 해결책을 발견했다.

1-파일 삭제 : LaunchScreen.storyboard를 휴지통으로 옮깁니다.

2-제품-> 청소

3-LaunchScreen.storyboard라는 새 시작 화면 파일을 만들고 이미지를 넣습니다.

4-저장 및 빌드

몇 시간 동안 복잡한 방법을 시도한 후에 저에게 효과적이었습니다 ... LaunchScreen.storyboard가 쓰기 잠금되어 저장 할 수 없거나 이상한 캐싱 프로세스가 차단하고있는 것 같습니다.


이미지 이름이 문제입니다. 실행 화면 스토리 보드에서 사용 된 이미지 이름을 바꾸십시오. 영숫자 이외의 문자를 사용하지 않아야합니다 ( "_- & @"는 사용하지 마십시오).

참고 URL : https://stackoverflow.com/questions/32579150/uiimageview-missing-images-in-launch-screen-on-device

반응형