added a nav bar but I don't like it...takes away from the flow
This commit is contained in:
@@ -37,61 +37,53 @@ struct FooterControlsView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
HStack(alignment: .center) {
|
ZStack {
|
||||||
Spacer()
|
Button(action: {
|
||||||
|
}, label: {
|
||||||
ZStack {
|
Image(systemName: self.isHolding ? "waveform" : "mic.fill")
|
||||||
Button(action: {
|
.foregroundColor(.white)
|
||||||
}, label: {
|
.padding()
|
||||||
Image(systemName: self.isHolding ? "waveform" : "mic.fill")
|
.background(NirvanaColor.teal)
|
||||||
.foregroundColor(.white)
|
.clipShape(Circle())
|
||||||
.padding()
|
.shadow(radius: 10)
|
||||||
.background(NirvanaColor.teal)
|
.scaleEffect(self.isHolding ? 1.2: 1,
|
||||||
.clipShape(Circle())
|
|
||||||
.shadow(radius: 10)
|
|
||||||
.scaleEffect(self.isHolding ? 1.2: 1,
|
|
||||||
anchor: .center)
|
|
||||||
.simultaneousGesture(dragGesture)
|
|
||||||
// .animation(.default, value: self.isHolding)
|
|
||||||
})
|
|
||||||
.zIndex(10)
|
|
||||||
|
|
||||||
Circle()
|
|
||||||
.frame(width: 60, height: 60, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
|
|
||||||
.scaleEffect(self.scaleBigPulser,
|
|
||||||
anchor: .center)
|
anchor: .center)
|
||||||
.foregroundColor(NirvanaColor.teal)
|
.simultaneousGesture(dragGesture)
|
||||||
.opacity(0.3)
|
// .animation(.default, value: self.isHolding)
|
||||||
.onAppear {
|
})
|
||||||
let baseAnimation = Animation.easeOut(duration: 1)
|
.zIndex(10)
|
||||||
let repeated = baseAnimation.repeatForever(autoreverses: true)
|
|
||||||
|
|
||||||
withAnimation(repeated) {
|
Circle()
|
||||||
self.scaleBigPulser = 1.12
|
.frame(width: 60, height: 60, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
|
||||||
}
|
.scaleEffect(self.scaleBigPulser,
|
||||||
|
anchor: .center)
|
||||||
|
.foregroundColor(NirvanaColor.teal)
|
||||||
|
.opacity(0.3)
|
||||||
|
.onAppear {
|
||||||
|
let baseAnimation = Animation.easeOut(duration: 1)
|
||||||
|
let repeated = baseAnimation.repeatForever(autoreverses: true)
|
||||||
|
|
||||||
|
withAnimation(repeated) {
|
||||||
|
self.scaleBigPulser = 1.12
|
||||||
}
|
}
|
||||||
|
}
|
||||||
Circle()
|
|
||||||
.frame(width: 50, height: 50, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
|
Circle()
|
||||||
.scaleEffect(self.isHolding ? 1.5: 1,
|
.frame(width: 50, height: 50, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
|
||||||
anchor: .center)
|
.scaleEffect(self.isHolding ? 1.5: 1,
|
||||||
.foregroundColor(NirvanaColor.teal)
|
anchor: .center)
|
||||||
.opacity(0.5)
|
.foregroundColor(NirvanaColor.teal)
|
||||||
.animation(Animation.easeInOut(duration:1).repeat(while: self.isHolding, autoreverses: true))
|
.opacity(0.5)
|
||||||
|
.animation(Animation.easeInOut(duration:1).repeat(while: self.isHolding, autoreverses: true))
|
||||||
Circle()
|
|
||||||
.frame(width: 30, height: 30, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
|
Circle()
|
||||||
.scaleEffect(self.isHolding ? 1.1: 1,
|
.frame(width: 30, height: 30, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
|
||||||
anchor: .center)
|
.scaleEffect(self.isHolding ? 1.1: 1,
|
||||||
.foregroundColor(NirvanaColor.teal)
|
anchor: .center)
|
||||||
.opacity(0.9)
|
.foregroundColor(NirvanaColor.teal)
|
||||||
.animation(Animation.easeInOut(duration: 1).repeat(while: self.isHolding, autoreverses: true))
|
.opacity(0.9)
|
||||||
|
.animation(Animation.easeInOut(duration: 1).repeat(while: self.isHolding, autoreverses: true))
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.padding()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ struct InnerCircleView: View {
|
|||||||
//TODO: find a better solution than hacking it like this
|
//TODO: find a better solution than hacking it like this
|
||||||
Color.clear
|
Color.clear
|
||||||
|
|
||||||
FooterControlsView()
|
footer
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -108,6 +108,41 @@ struct InnerCircleView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var footer : some View {
|
||||||
|
ZStack {
|
||||||
|
HStack {
|
||||||
|
Image(systemName: "house.fill")
|
||||||
|
.frame(maxWidth: .infinity)
|
||||||
|
.frame(width: 40, height: 40)
|
||||||
|
.foregroundColor(NirvanaColor.white)
|
||||||
|
.padding(5)
|
||||||
|
.background(NirvanaColor.teal.opacity(0.1))
|
||||||
|
.clipShape(Circle())
|
||||||
|
Spacer()
|
||||||
|
Image(systemName: "rectangle.3.group.fill")
|
||||||
|
.frame(maxWidth: .infinity)
|
||||||
|
.frame(width: 40, height: 40)
|
||||||
|
.foregroundColor(NirvanaColor.teal)
|
||||||
|
Spacer()
|
||||||
|
Image(systemName: "suitcase.fill")
|
||||||
|
.frame(maxWidth: .infinity)
|
||||||
|
.frame(width: 40, height: 40)
|
||||||
|
.foregroundColor(NirvanaColor.teal)
|
||||||
|
}
|
||||||
|
.frame(maxWidth: .infinity, maxHeight: 50)
|
||||||
|
.background(Color.white.opacity(0.5))
|
||||||
|
.clipShape(RoundedRectangle(cornerRadius: 30, style: .continuous))
|
||||||
|
.shadow(color: Color.black.opacity(0.25), radius: 30, x: 0, y: 20)
|
||||||
|
.padding()
|
||||||
|
|
||||||
|
|
||||||
|
FooterControlsView()
|
||||||
|
.offset(x: 0, y: -25)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// magic variables for grid
|
// magic variables for grid
|
||||||
// TODO: change the number of columns based on the number of items
|
// TODO: change the number of columns based on the number of items
|
||||||
private static var numberOfItems: Int = 20
|
private static var numberOfItems: Int = 20
|
||||||
|
|||||||
Reference in New Issue
Block a user