我正在嘗試在 Swiftui 中創建影像影片。我想單擊一個帶有標簽的按鈕作為影像(該影像是影像陣列中的第一個元素)。單擊按鈕后,我想顯示陣列中的其余影像,并讓標簽影像每秒隨著陣列的每個新元素而變化。對此的任何幫助都會很棒。
目前我可以在每次單擊后使用按鈕單擊來更改影像,但我想要單擊后影像的影片
我有的:
Button {
activeImageIndex = 1
} label: {
Image(images[activeImageIndex])
}
uj5u.com熱心網友回復:
我們可以簡單地使用 Combine 的delay()
運算子。
import SwiftUI
import Combine
struct ContentView: View {
let images = [ "square.and.arrow.up", "pencil.circle.fill", "moon.stars.fill"]
@State private var activeImageIndex = 0
@State private var cancellable: AnyCancellable? = nil
var body: some View {
Button {
cancellable = [0,1,2].publisher
.flatMap(maxPublishers: .max(1)) { Just($0).delay(for: 3, scheduler: RunLoop.main) } //<- delay for: 3 sec
.sink { value in
activeImageIndex = value
}
} label: {
Image(systemName: images[activeImageIndex])
.animation(.easeIn, value: activeImageIndex)
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/522787.html
標籤:迅速动画迅捷
下一篇:CSS影片渲染-令人瞠目結舌