我正在滚动视图中水平滚动大视图(屏幕宽度)。我希望视图能够自动居中,而不希望出现两个视图都部分可见的情况。
我已经在使用GeometryReader的数据为视图执行3D旋转动画。我试图使用三元运算符将UIScreen的位置添加到card.position()。
struct WorkoutCard: View {
var numberOfWorkouts : [Int] = [0, 1, 2, 3]
var deviceCentre = (CGPoint(x: CGFloat(UIScreen.main.bounds.midX), y: CGFloat(UIScreen.main.bounds.midY)))
var body: some View {
ZStack {
ScrollView (.horizontal, showsIndicators: false) {
HStack {
ForEach(self.numberOfWorkouts.reversed(), id: \.self) { index in
GeometryReader { geometry in
Card(index).position(geometry.frame(in: .global).maxY == 0 ? self.deviceCentre : self.position() as! CGPoint )
.rotation3DEffect(Angle(degrees: Double(geometry.frame(in: .global).minX) / 4 ) ,
axis: (x: 0, y: 10 , z: 0))
}.frame( width: 414, height : 896)
}
}
}
}.edgesIgnoringSafeArea(.all)
}
}
我希望卡片视图在不滚动时处于中心位置,以避免显示2张卡片视图。