number of columns for ipad

release
Laurent 3 years ago
parent a7dc50356d
commit ee186e7330
  1. 31
      LeCountdown/Views/ContentView.swift
  2. 4
      LeCountdown/Views/HomeView.swift
  3. 6
      LeCountdown/Views/PresetsView.swift

@ -8,7 +8,7 @@
import SwiftUI
import CoreData
import Combine
import CloudKit
//import CloudKit
class BoringContext : ObservableObject {
@ -55,7 +55,9 @@ struct ContentView<T : AbstractTimer>: View {
@Environment(\.managedObjectContext) private var viewContext
// @StateObject fileprivate var model: TimersModel = TimersModel()
#if os(iOS)
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
#endif
@FetchRequest(
sortDescriptors: [NSSortDescriptor(keyPath: \T.order, ascending: true)],
@ -69,15 +71,12 @@ struct ContentView<T : AbstractTimer>: View {
fileprivate let itemSpacing: CGFloat = 10.0
private let columns: [GridItem] = [
GridItem(spacing: 10.0),
GridItem(spacing: 10.0),
]
var body: some View {
let columns: [GridItem] = self._columns()
GeometryReader { reader in
let width: CGFloat = reader.size.width / 2 - 15.0
let width: CGFloat = reader.size.width / CGFloat(columns.count) - 15.0
VStack {
@ -188,6 +187,22 @@ struct ContentView<T : AbstractTimer>: View {
}
fileprivate func _columnCount() -> Int {
#if os(iOS)
if horizontalSizeClass == .compact {
return 2
} else {
return 3
}
#else
return 3
#endif
}
fileprivate func _columns() -> [GridItem] {
return (0..<self._columnCount()).map { _ in GridItem(spacing: 10.0) }
}
// fileprivate func _buildItemsList() {
//
// var spots: [TimerSpot] = []

@ -75,12 +75,12 @@ struct RegularHomeView: View {
struct CompactHomeView_Previews: PreviewProvider {
static var previews: some View {
CompactHomeView().previewDevice(PreviewDevice(rawValue: "iPhone 12 Pro"))
CompactHomeView()
}
}
struct RegularHomeView_Previews: PreviewProvider {
static var previews: some View {
RegularHomeView().previewDevice(PreviewDevice(rawValue: "iPad Pro (11-inch)"))
RegularHomeView()
}
}

@ -144,6 +144,7 @@ class PresetModel : ObservableObject {
struct PresetsView: View {
@Environment(\.managedObjectContext) private var viewContext
#if os(iOS)
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
#endif
@ -154,11 +155,6 @@ struct PresetsView: View {
var tabSelection: Binding<Int>
private let columns: [GridItem] = [
GridItem(spacing: 10.0),
GridItem(spacing: 10.0),
]
fileprivate func _columnCount() -> Int {
#if os(iOS)
if horizontalSizeClass == .compact {

Loading…
Cancel
Save