Hi! I have some issues with my code. Im here to see what I did wrong and hopefully learn from it.
So I have this problem where the code says one thing and the preview shows the exact same thing that the code is saying. For example.
.frame(width: proxy.size.width, height: proxy.size.height / 3). .ignoresSafeArea(.all, edges: .top)
But the simulator don’t show that the image is ignoring the safe area on top?
So what’s up with that?
Second encounter.
I´m using a TabView in form of a slider since I don’t know how to do a slider otherwise.
BUT this brings to problems.
- Since the slider is on a timer, the timer never resets except when it goes to 5 seconds to start over. But when I interact with the slider and switch from the first picture to the second on like 3 seconds then the slider automatically skips the second picture since the timer went to 5 and goes to the third picture. I would like it to reset when I interact with the slider.
This is the code for the slider.
Import SwiftUI
struct Tab1: View {
private var numberOfImages = 3
private let timer = Timer.publish(every: 10, on: .main, in: .common).autoconnect()
@State private var currentIndex = 0
var body: some View {
GeometryReader { proxy in
TabView(selection:$currentIndex) {
ForEach(0..<numberOfImages) { num in
Image("\(num)")
.tag("num")
}
}
.tabViewStyle(PageTabViewStyle())
.frame(width: proxy.size.width, height: proxy.size.height / 3). .ignoresSafeArea(.all, edges: .top)
.onReceive(timer, perform: { _ in
withAnimation {
currentIndex = currentIndex < numberOfImages ?
currentIndex + 1 : 0
}
})
}
}
}
struct Tab1_Previews: PreviewProvider {
static var previews: some View {
Tab1()
}
}
As you can see I have my slider in a frame, is this the only way to do it or is it the smartest way?
Thanks for every kind of response since this helps me evolve into coding.