SwiftUI TimelineView를 사용하는법

mystic·2023년 9월 9일
0
post-custom-banner

SwiftUI의 TimelineView는 정해진 주기마다 안에있는 View를 지속적으로 호출하는 API이기 때문에 내부에 변화하고 싶은 변수의 내용을 @State나 아니면 var variable = 3 같은 형태로 선언하는게 아니라 새로 호출될때마다 값을 계산하여 값이 변하는 computed property로 선언하여 사용해야 한다.
예를들어 아래와 같은 코드를 작성해야 한다.

import SwiftUI

struct ContentView: View {
    @State private var offset: CGFloat = 0
    
    private var date: Date {
        Date()
    }
    
    var body: some View {
        TimelineView(.animation(minimumInterval: 0.001)) { timeline in  // computed property
            VStack {
                Text(date.description)
                Text("👻")
                    .font(.largeTitle)
                    .offset(x: offset)
                    .onChange(of: timeline.date) { newValue in
                        offset += 1
                    }
            }
        }
    }
}
profile
iOS를 좋아하는 학생
post-custom-banner

0개의 댓글