iOS/UIKIT

UIImage와 UIImageView의 차이

밤새는 탐험가89 2024. 11. 10. 04:16

UIImage와 UIImageView는 둘 다 UIKit에서 이미지를 다루는 클래스이지만, 각각 역할이 다릅니다:

  1. UIImage:
    • 이미지 데이터 자체를 저장하는 객체입니다.
    • 보통 파일이나 URL 등에서 이미지를 로드할 때 사용합니다.
    • 이미지를 표시하거나 저장, 편집하는 등 다양한 용도로 사용할 수 있지만, 화면에 직접적으로 표시하는 기능은 없습니다.
    • 예: UIImage(named: "imageName")는 해당 파일 이름을 가진 이미지를 로드해서 UIImage 객체로 반환합니다.
  2. UIImageView:
    • UIView를 상속받은 클래스로, 이미지를 화면에 표시하는 데 사용됩니다.
    • UIImageView는 UIImage를 포함할 수 있으며, 이를 통해 이미지가 화면에 렌더링됩니다.
    • 다양한 속성을 이용해 이미지의 표시 방식(예: 콘텐츠 모드, 크기 조정, 애니메이션 등)을 조정할 수 있습니다.
    • 예: UIImageView(image: myImage)는 UIImage 객체인 myImage를 화면에 표시하는 이미지 뷰를 생성합니다.

정리하자면, UIImage는 단순히 이미지를 데이터로서 다루는 객체이고, UIImageView는 이를 화면에 표시하기 위한 뷰 객체입니다. 이미지를 화면에 띄우기 위해서는 UIImageView에 UIImage를 설정해 주어야 합니다.

 

🔥 예를 들어, 어떤 이미지 파일을 앱에 추가하고 이 이미지를 화면에 표시한다고 가정해 보겠습니다.

 

1. UIImage를 이용해 이미지 데이터를 로드

// 이미지 파일을 로드하여 UIImage로 저장
let image = UIImage(named: "exampleImage")

 

여기서 UIImage(named:) 메서드를 사용하여 exampleImage라는 이름의 이미지 파일을 로드하고, image라는 변수에 UIImage 객체로 저장합니다. 이 단계에서는 이미지가 데이터로 로드만 된 상태이지 화면에는 나타나지 않습니다.

 

2. UIImageView를 이용해 이미지를 화면에 표시

UIImageView는 이미지를 화면에 표시하는 데 사용됩니다. 위에서 만든 UIImage 객체를 UIImageView에 설정해 볼게요.

// UIImageView를 생성하고 이미지 설정
let imageView = UIImageView(image: image)

// 이미지 뷰의 위치와 크기 설정
imageView.frame = CGRect(x: 50, y: 50, width: 200, height: 200)

// 뷰에 추가하여 화면에 표시
view.addSubview(imageView)

 

이렇게 하면 UIImageView가 UIImage 객체를 이용해 이미지를 화면에 표시하게 됩니다. imageView가 view의 서브뷰로 추가되어 실제 화면에 표시되며, 사용자가 볼 수 있습니다.

 

3. 이미지 표시의 설정 변경 (UIImageView)

UIImageView는 다양한 속성으로 이미지 표시 방식을 조절할 수 있습니다. 예를 들어, 이미지의 크기를 자동으로 맞추는 contentMode를 설정할 수 있습니다.

 

// 이미지 뷰의 contentMode 설정
imageView.contentMode = .scaleAspectFit  // 이미지 비율 유지하면서 뷰에 맞춤

 

이 설정을 통해, 이미지를 뷰의 크기에 맞추어 조절할 수도 있고, 이미지가 중앙에 오도록 할 수도 있습니다.