[SwiftUI] UIActivityIndicatorView 만들기

4010 단어 iOSSwiftSwiftUI

게시물의 경위



개인 개발 중인 앱으로 인디케이터를 작성했으므로 비망록.

환경



Swift 버전 5.4.2
Xcode 버전 12.5.1

완성 이미지





표시된 View 위에 opacity를 붙인 배경과 화면 중앙에 인디케이터를 표시시킵니다.

지표 작성


import Foundation
import SwiftUI

struct ActivityIndicator: UIViewRepresentable {
    func makeUIView(context: UIViewRepresentableContext<ActivityIndicator>) -> UIActivityIndicatorView {
        UIActivityIndicatorView(style: .large)
    }

    func updateUIView(_ uiView: UIActivityIndicatorView, context: UIViewRepresentableContext<ActivityIndicator>) {
        uiView.startAnimating()
    }
}
UIViewRepresentable를 사용하여 UIActivityIndicatorView를 만듭니다.
인디케이터를 커스텀 하는 경우는 updateUIView 안에서 uiView 를 커스텀 해 주면 편집할 수 있습니다.

표시기 호출


@State private var isShowsIndicator = false


var body: some View {

    /////省略/////

    if isShowsIndicator {
        ZStack {
            Color.black.opacity(0.5)
                .edgesIgnoringSafeArea(.all)
            ActivityIndicator()
        }
        .animation(.linear)
    }
}
@Stateオブジェクト를 사용하여 표시기의 표시 상태를 관리합니다.
이 경우 isShowsIndicator가 true로 표시기를 시작하기 때문에 이렇게 씁니다.

표시기를 표시할 때 배경색으로 ZStack로 둘러싸고 Color와 겹칩니다.
애니메이션을 붙이면 자연스럽게 인디케이터가 표시되므로 쓰고 있습니다.

공지



현재, iOS 개발 안건을 업무 위탁으로 모집중입니다(부업). TwitterDM에서 요청을 기다리고 있습니다.

좋은 웹페이지 즐겨찾기