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

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

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

Loading…
Cancel
Save