Avatar

사용자 또는 기업, 학교를 나타내는 대표 이미지 또는 아이콘입니다. 다양한 크기와 모양 옵션을 제공하여 프로필, 댓글, 목록 등 맥락에 맞춰 시각적으로 일관되게 표시할 수 있도록 돕습니다.

@MainActor struct Avatar

Overview

원형 또는 둥근 모서리 사각형 형태로 프로필 이미지를 표시합니다. 이미지 URL이 유효하지 않을 경우 각 유형별 기본 이미지를 표시합니다.

// 기본 사용자 아바타
Avatar("https://example.com/profile.jpg", variant: .person)

// 테두리가 있는 회사 아바타
Avatar("https://example.com/company-logo.png", variant: .company, size: .medium)
    .border(color: .red, width: 2)

// 푸시 알림 표시가 있는 아바타
Avatar("https://example.com/profile.jpg", variant: .person)
    .pushBadge()

Topics

Initializers

init(Image, variant: Variant, size: Size, onTap: (() -> Void)?)

SwiftUI Image로 아바타를 초기화합니다.

  • Parameters
    ParameterDescription
    image표시할 SwiftUI Image
    variant아바타 유형 (.person, .company, .academy)
    size아바타 크기, 생략하면 기본값으로 .small 적용
    onTap탭 시 실행할 액션, 생략하면 기본값으로 nil 적용
init(String, variant: Variant, size: Size, onTap: (() -> Void)?)

URL 문자열로 아바타를 초기화합니다.

  • Parameters
    ParameterDescription
    imageUrl표시할 이미지의 URL 문자열
    variant아바타 유형 (.person, .company, .academy)
    size아바타 크기, 생략하면 기본값으로 .small 적용
    onTap탭 시 실행할 액션, 생략하면 기본값으로 nil 적용

Instance Properties

var body: some View

뷰의 내용과 동작을 정의합니다.

Instance Methods

func border(color: SwiftUI.Color, width: CGFloat) -> Avatar

아바타에 테두리를 추가합니다.

  • Parameters

    ParameterDescription
    color테두리 색상, 생략하면 기본값으로 .semantic(.lineAlternative) 적용
    width테두리 두께, 생략하면 기본값으로 1 적용
  • Return Value

    수정된 아바타 인스턴스

func contentMode(ContentMode) -> Avatar

이미지의 콘텐츠 모드를 설정합니다.

  • Parameters

    ParameterDescription
    contentMode콘텐츠 모드, .fit 또는 .fill
  • Return Value

    수정된 아바타 인스턴스

func cornerRadius(CGFloat) -> Avatar

아바타의 모서리 반경을 커스텀 값으로 설정합니다.

  • Parameters

    ParameterDescription
    cornerRadius모서리 반경 값
  • Return Value

    수정된 아바타 인스턴스

  • Discussion

    .person variant는 항상 원형이므로 이 modifier가 적용되지 않습니다.

func pushBadge(Bool, size: PushBadge.Size?) -> Avatar

푸시 알림 표시 뱃지를 아바타에 추가합니다.

  • Parameters

    ParameterDescription
    pushBadge뱃지 표시 여부, 생략하면 기본값으로 true 적용
    size뱃지 크기, 생략하면 아바타 크기에 따라 자동 결정
  • Return Value

    수정된 아바타 인스턴스

  • Discussion

    푸시 뱃지는 사용자(.person) 아바타에만 적용 가능합니다.

Enumerations

enum Size

아바타의 크기를 정의하는 열거형입니다.

Enumeration Cases

case custom(CGFloat)

커스텀 크기

  • Discussion

    커스텀 크기 사용 시 다음 규칙이 자동 적용됩니다:

    • pushBadge size: 36pt 이하 .xsmall, 37~52pt .small, 53pt 이상 .medium
    • cornerRadius (company/academy): 크기의 25% (짝수로 올림 보정)

    cornerRadius(_:)로 cornerRadius를 직접 지정하거나, pushBadge(_:size:)size 파라미터로 뱃지 크기를 직접 지정할 수 있습니다.

case large

큰 크기

case medium

중간 크기

case small

작은 크기

case xlarge

가장 큰 크기

case xsmall

가장 작은 크기

enum Variant

아바타의 유형을 정의하는 열거형입니다.

Enumeration Cases

case academy

학원 프로필 (둥근 모서리 사각형)

case company

회사 프로필 (둥근 모서리 사각형)

case person

사용자 프로필 (원형)

Relationships

Conforms To

Swift.Sendable

SwiftUICore.View

© 2026 Wanted Lab, Inc.