SwiftUI에서 상태 변수를 통해 모양을 애니메이션하는 방법은 무엇입니까?

알렉스 K

탭시 SwiftUI에서 직사각형의 오른쪽에 애니메이션을 적용하려고합니다. 하지만 작동하지 않습니다 (비율 상태 var가 있고 애니메이션 가능 유형 (CGFloat)입니다. 이유가 전혀 없습니다. 조언 부탁드립니다.

struct ContentView: View {
    @State private var animated = false

    var body: some View {
        Bar(ratio: animated ? 0.0 : 1.0).animation(Animation.easeIn(duration: 1))
        .onTapGesture {
            self.animated.toggle()
        }.foregroundColor(.green)
    }
}

struct Bar: Shape {
    @State var ratio: CGFloat

    var animatableData: CGFloat {
        get { return ratio }
        set { ratio = newValue }
    }

    func path(in rect: CGRect) -> Path {
        var p = Path()

        p.move(to: CGPoint.zero)

        let width = rect.size.width * ratio
        p.addLine(to: CGPoint(x: width, y: 0))

        let height = rect.size.height

        p.addLine(to: CGPoint(x: width, y: height))

        p.addLine(to: CGPoint(x: 0, y: height))

        p.closeSubpath()

        return p
    }
}
그의 성질

@State애니메이션 가능한 데이터 에는 필요하지 않으므로 수정이 간단합니다.

struct Bar: Shape {
    var ratio: CGFloat

여기에 이미지 설명 입력

이 데모보기로 테스트 됨 (Xcode 11.2 / iOS 13.2에서)

struct TestAnimateBar: View {
    @State private var animated = false

    var body: some View {
        VStack {
            Bar(ratio: animated ? 0.0 : 1.0).animation(Animation.easeIn(duration: 1))
                .foregroundColor(.green)
        }
        .background(Color.gray)
        .frame(height: 40)
        .onTapGesture {
            self.animated.toggle()
        }
    }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Vuex에서 POST 요청을 통해 상태 데이터를 보내는 방법은 무엇입니까?

분류에서Dev

tkinter에서 메뉴 모음 방법을 통해 페이지를 변경하는 방법은 무엇입니까?

분류에서Dev

Windows 10에서 SSH를 통해 애플리케이션을 정상적으로 종료하는 방법은 무엇입니까?

분류에서Dev

angr 시뮬레이션 상태에서 (malloc) 메모리를 할당하는 방법은 무엇입니까?

분류에서Dev

방향 변경을 통해 필터링 된 CursorAdapter의 상태를 유지하는 방법은 무엇입니까?

분류에서Dev

AngularJs에서 상태를 통해 데이터를 전달하는 방법은 무엇입니까?

분류에서Dev

WPF 애플리케이션에서 메모리의 변수를 검색하는 방법은 무엇입니까?

분류에서Dev

model.fit ()을 통해 LSTM 모델의 셀 상태를 추출하는 방법은 무엇입니까?

분류에서Dev

SwiftUI에서 navigationBarHidden을 애니메이션하는 방법은 무엇입니까?

분류에서Dev

WPF에서 로그인 양식 애니메이션을 수행하는 방법은 무엇입니까?

분류에서Dev

iOS 7에서 애니메이션으로 상태 표시 줄을 숨기는 방법은 무엇입니까?

분류에서Dev

Springboot 애플리케이션에서 POSTMAN을 통해 전송 된 JSONObject를 잡는 방법은 무엇입니까?

분류에서Dev

EnvironmentObject를 사용하여 SwiftUI에서 상태 속성을 초기화하는 방법은 무엇입니까?

분류에서Dev

iOS에서 다크 모드 변경을 애니메이션하는 방법은 무엇입니까?

분류에서Dev

React Route의 부모에서 상태 변수를 설정하는 방법은 무엇입니까?

분류에서Dev

jQuery-메뉴에서 상자를 애니메이션하는 방법은 무엇입니까?

분류에서Dev

일부 화면 해상도에 대해서만 CSS 애니메이션을 활성화하는 방법은 무엇입니까?

분류에서Dev

Unity에서 재생해야하는 애니메이션을 재생하는 개체를 만드는 방법은 무엇입니까?

분류에서Dev

명령 줄을 통해 Windows에서 현재 화면 해상도를 얻는 방법은 무엇입니까?

분류에서Dev

SSH를 통해 로컬 가상 머신을 원격 서버에 연결하는 방법은 무엇입니까?

분류에서Dev

다른 양식에있는 텍스트 상자를 통해 DataGridview에서 선택한 행을 업데이트하는 방법은 무엇입니까?

분류에서Dev

MVC에서 $ .getJson을 통해 2 개의 매개 변수를 전달하는 방법은 무엇입니까?

분류에서Dev

SwiftUI에서 NavigationView의 대상을 변경하는 방법은 무엇입니까?

분류에서Dev

파이썬 웹 앱에서 상태 변경 알림을 위해 서버에서 보낸 이벤트를 생성하는 방법은 무엇입니까?

분류에서Dev

woocommerce 주문 상태가 액션 후크를 통해 완료 될 때 메일 스터 자동 응답을 트리거하는 방법은 무엇입니까?

분류에서Dev

애니메이션을 통해 내 내비게이션 (이미지 위에있는)을 이동하는 방법은 무엇입니까?

분류에서Dev

iOS에서 BooK 앞 표지와 같은 애니메이션을 수행하는 방법은 무엇입니까?

분류에서Dev

양식 제출에서 상태의 여러 값을 해제하는 방법은 무엇입니까?

분류에서Dev

matplotlib의 패치 원 애니메이션에서 색상을 효율적으로 변경하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Vuex에서 POST 요청을 통해 상태 데이터를 보내는 방법은 무엇입니까?

  2. 2

    tkinter에서 메뉴 모음 방법을 통해 페이지를 변경하는 방법은 무엇입니까?

  3. 3

    Windows 10에서 SSH를 통해 애플리케이션을 정상적으로 종료하는 방법은 무엇입니까?

  4. 4

    angr 시뮬레이션 상태에서 (malloc) 메모리를 할당하는 방법은 무엇입니까?

  5. 5

    방향 변경을 통해 필터링 된 CursorAdapter의 상태를 유지하는 방법은 무엇입니까?

  6. 6

    AngularJs에서 상태를 통해 데이터를 전달하는 방법은 무엇입니까?

  7. 7

    WPF 애플리케이션에서 메모리의 변수를 검색하는 방법은 무엇입니까?

  8. 8

    model.fit ()을 통해 LSTM 모델의 셀 상태를 추출하는 방법은 무엇입니까?

  9. 9

    SwiftUI에서 navigationBarHidden을 애니메이션하는 방법은 무엇입니까?

  10. 10

    WPF에서 로그인 양식 애니메이션을 수행하는 방법은 무엇입니까?

  11. 11

    iOS 7에서 애니메이션으로 상태 표시 줄을 숨기는 방법은 무엇입니까?

  12. 12

    Springboot 애플리케이션에서 POSTMAN을 통해 전송 된 JSONObject를 잡는 방법은 무엇입니까?

  13. 13

    EnvironmentObject를 사용하여 SwiftUI에서 상태 속성을 초기화하는 방법은 무엇입니까?

  14. 14

    iOS에서 다크 모드 변경을 애니메이션하는 방법은 무엇입니까?

  15. 15

    React Route의 부모에서 상태 변수를 설정하는 방법은 무엇입니까?

  16. 16

    jQuery-메뉴에서 상자를 애니메이션하는 방법은 무엇입니까?

  17. 17

    일부 화면 해상도에 대해서만 CSS 애니메이션을 활성화하는 방법은 무엇입니까?

  18. 18

    Unity에서 재생해야하는 애니메이션을 재생하는 개체를 만드는 방법은 무엇입니까?

  19. 19

    명령 줄을 통해 Windows에서 현재 화면 해상도를 얻는 방법은 무엇입니까?

  20. 20

    SSH를 통해 로컬 가상 머신을 원격 서버에 연결하는 방법은 무엇입니까?

  21. 21

    다른 양식에있는 텍스트 상자를 통해 DataGridview에서 선택한 행을 업데이트하는 방법은 무엇입니까?

  22. 22

    MVC에서 $ .getJson을 통해 2 개의 매개 변수를 전달하는 방법은 무엇입니까?

  23. 23

    SwiftUI에서 NavigationView의 대상을 변경하는 방법은 무엇입니까?

  24. 24

    파이썬 웹 앱에서 상태 변경 알림을 위해 서버에서 보낸 이벤트를 생성하는 방법은 무엇입니까?

  25. 25

    woocommerce 주문 상태가 액션 후크를 통해 완료 될 때 메일 스터 자동 응답을 트리거하는 방법은 무엇입니까?

  26. 26

    애니메이션을 통해 내 내비게이션 (이미지 위에있는)을 이동하는 방법은 무엇입니까?

  27. 27

    iOS에서 BooK 앞 표지와 같은 애니메이션을 수행하는 방법은 무엇입니까?

  28. 28

    양식 제출에서 상태의 여러 값을 해제하는 방법은 무엇입니까?

  29. 29

    matplotlib의 패치 원 애니메이션에서 색상을 효율적으로 변경하는 방법은 무엇입니까?

뜨겁다태그

보관