Made small improvements like dismissing the keyboard. Tapping the Contacts tab causes the app to crash.
This commit is contained in:
parent
b77ef882e8
commit
5c4d4f8059
21 changed files with 174 additions and 36 deletions
|
|
@ -14,6 +14,10 @@
|
|||
850F8018284A83400094580D /* FeaturesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 850F8017284A83400094580D /* FeaturesView.swift */; };
|
||||
850F80202853F7790094580D /* LicenseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 850F801F2853F7790094580D /* LicenseView.swift */; };
|
||||
850F80222853F7E30094580D /* SecretView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 850F80212853F7E30094580D /* SecretView.swift */; };
|
||||
850F8027285437500094580D /* caleb.bost.duo.heic in Resources */ = {isa = PBXBuildFile; fileRef = 850F8023285437500094580D /* caleb.bost.duo.heic */; };
|
||||
850F8028285437500094580D /* aiden.moore.states.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 850F8024285437500094580D /* aiden.moore.states.jpg */; };
|
||||
850F8029285437500094580D /* isaac.greene.clouds.heic in Resources */ = {isa = PBXBuildFile; fileRef = 850F8025285437500094580D /* isaac.greene.clouds.heic */; };
|
||||
850F802A285437500094580D /* jake.zimmerman.group.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 850F8026285437500094580D /* jake.zimmerman.group.jpg */; };
|
||||
85AAA0D627FA2DD600F4B9A1 /* SplitsApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85AAA0D527FA2DD600F4B9A1 /* SplitsApp.swift */; };
|
||||
85AAA0D827FA2DD600F4B9A1 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85AAA0D727FA2DD600F4B9A1 /* ContentView.swift */; };
|
||||
85AAA0DA27FA2DDA00F4B9A1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 85AAA0D927FA2DDA00F4B9A1 /* Assets.xcassets */; };
|
||||
|
|
@ -31,6 +35,10 @@
|
|||
850F8017284A83400094580D /* FeaturesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeaturesView.swift; sourceTree = "<group>"; };
|
||||
850F801F2853F7790094580D /* LicenseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LicenseView.swift; sourceTree = "<group>"; };
|
||||
850F80212853F7E30094580D /* SecretView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretView.swift; sourceTree = "<group>"; };
|
||||
850F8023285437500094580D /* caleb.bost.duo.heic */ = {isa = PBXFileReference; lastKnownFileType = file; name = caleb.bost.duo.heic; path = Assets.xcassets/caleb.bost.duo.heic; sourceTree = "<group>"; };
|
||||
850F8024285437500094580D /* aiden.moore.states.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = aiden.moore.states.jpg; path = Assets.xcassets/aiden.moore.states.jpg; sourceTree = "<group>"; };
|
||||
850F8025285437500094580D /* isaac.greene.clouds.heic */ = {isa = PBXFileReference; lastKnownFileType = file; name = isaac.greene.clouds.heic; path = Assets.xcassets/isaac.greene.clouds.heic; sourceTree = "<group>"; };
|
||||
850F8026285437500094580D /* jake.zimmerman.group.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = jake.zimmerman.group.jpg; path = Assets.xcassets/jake.zimmerman.group.jpg; sourceTree = "<group>"; };
|
||||
85AAA0D227FA2DD600F4B9A1 /* Splits.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Splits.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
85AAA0D527FA2DD600F4B9A1 /* SplitsApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplitsApp.swift; sourceTree = "<group>"; };
|
||||
85AAA0D727FA2DD600F4B9A1 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -83,6 +91,10 @@
|
|||
85AAA0E527FA2EB100F4B9A1 /* ModalView.swift */,
|
||||
850F801F2853F7790094580D /* LicenseView.swift */,
|
||||
85AAA0D927FA2DDA00F4B9A1 /* Assets.xcassets */,
|
||||
850F8025285437500094580D /* isaac.greene.clouds.heic */,
|
||||
850F8023285437500094580D /* caleb.bost.duo.heic */,
|
||||
850F8026285437500094580D /* jake.zimmerman.group.jpg */,
|
||||
850F8024285437500094580D /* aiden.moore.states.jpg */,
|
||||
85AAA0DB27FA2DDA00F4B9A1 /* Preview Content */,
|
||||
);
|
||||
path = Splits;
|
||||
|
|
@ -162,6 +174,10 @@
|
|||
files = (
|
||||
85AAA0DD27FA2DDA00F4B9A1 /* Preview Assets.xcassets in Resources */,
|
||||
85AAA0DA27FA2DDA00F4B9A1 /* Assets.xcassets in Resources */,
|
||||
850F802A285437500094580D /* jake.zimmerman.group.jpg in Resources */,
|
||||
850F8028285437500094580D /* aiden.moore.states.jpg in Resources */,
|
||||
850F8027285437500094580D /* caleb.bost.duo.heic in Resources */,
|
||||
850F8029285437500094580D /* isaac.greene.clouds.heic in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
<key>Splits.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>SwiftRichString (Playground) 1.xcscheme</key>
|
||||
<dict>
|
||||
|
|
|
|||
21
Splits/Assets.xcassets/aiden.moore.states.imageset/Contents.json
vendored
Normal file
21
Splits/Assets.xcassets/aiden.moore.states.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "aiden.moore.states.jpg",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
Splits/Assets.xcassets/aiden.moore.states.imageset/aiden.moore.states.jpg
vendored
Normal file
BIN
Splits/Assets.xcassets/aiden.moore.states.imageset/aiden.moore.states.jpg
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
BIN
Splits/Assets.xcassets/aiden.moore.states.jpg
Normal file
BIN
Splits/Assets.xcassets/aiden.moore.states.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
BIN
Splits/Assets.xcassets/caleb.bost.duo.heic
Normal file
BIN
Splits/Assets.xcassets/caleb.bost.duo.heic
Normal file
Binary file not shown.
21
Splits/Assets.xcassets/caleb.bost.duo.imageset/Contents.json
vendored
Normal file
21
Splits/Assets.xcassets/caleb.bost.duo.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "caleb.bost.duo.heic",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
Splits/Assets.xcassets/caleb.bost.duo.imageset/caleb.bost.duo.heic
vendored
Normal file
BIN
Splits/Assets.xcassets/caleb.bost.duo.imageset/caleb.bost.duo.heic
vendored
Normal file
Binary file not shown.
BIN
Splits/Assets.xcassets/isaac.greene.clouds.heic
Normal file
BIN
Splits/Assets.xcassets/isaac.greene.clouds.heic
Normal file
Binary file not shown.
21
Splits/Assets.xcassets/isaac.greene.clouds.imageset/Contents.json
vendored
Normal file
21
Splits/Assets.xcassets/isaac.greene.clouds.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "isaac.greene.clouds.heic",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
Splits/Assets.xcassets/isaac.greene.clouds.imageset/isaac.greene.clouds.heic
vendored
Normal file
BIN
Splits/Assets.xcassets/isaac.greene.clouds.imageset/isaac.greene.clouds.heic
vendored
Normal file
Binary file not shown.
21
Splits/Assets.xcassets/jake.zimmerman.group.imageset/Contents.json
vendored
Normal file
21
Splits/Assets.xcassets/jake.zimmerman.group.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "jake.zimmerman.group.jpg",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
Splits/Assets.xcassets/jake.zimmerman.group.imageset/jake.zimmerman.group.jpg
vendored
Normal file
BIN
Splits/Assets.xcassets/jake.zimmerman.group.imageset/jake.zimmerman.group.jpg
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
BIN
Splits/Assets.xcassets/jake.zimmerman.group.jpg
Normal file
BIN
Splits/Assets.xcassets/jake.zimmerman.group.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
|
|
@ -17,11 +17,14 @@ struct June2022: View {
|
|||
VStack (alignment: .leading) {
|
||||
Text("2022-06-10")
|
||||
.font(.title2)
|
||||
Text("Version 1.0.0 (LVSXT10a)\n")
|
||||
Text("Version Release Candidate (LVSXT10a)\n")
|
||||
.font(.footnote)
|
||||
Text("\u{2022} Got the conversion of paces to work, so a 5:00/km pace will also show as 8:03/mi\n\u{2022} This app is now considered \"Finished\" and will transition to Version Numbers")
|
||||
Text("\u{2022} Got the conversion of paces to work, so a 5:00/km pace will also show as 8:03/mi\n\u{2022} This app is now considered \"Finished\" and will transition to Version Numbers\n\u{2022} FINALLY MADE A WAY TO DISMISS THE KEYBOARD\n\t\u{2022} (as with most of the other solutions I've had to use for other problems in this app, the fix was remarkably easy)\n\u{2022} Made several small quality-of-life improvements")
|
||||
}
|
||||
Spacer()
|
||||
}
|
||||
.padding(30)
|
||||
|
||||
//2022-06-09
|
||||
HStack {
|
||||
VStack (alignment: .leading) {
|
||||
|
|
@ -97,6 +100,8 @@ struct June2022: View {
|
|||
}
|
||||
.padding(30)
|
||||
}
|
||||
.navigationTitle("June 2022 Log")
|
||||
.navigationBarTitleDisplayMode(.inline)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -129,6 +134,8 @@ struct May2022: View {
|
|||
}
|
||||
.padding(30)
|
||||
}
|
||||
.navigationTitle("May 2022 Log")
|
||||
.navigationBarTitleDisplayMode(.inline)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -226,6 +233,8 @@ struct April2022: View {
|
|||
}
|
||||
.padding(30)
|
||||
}
|
||||
.navigationTitle("April 2022 Log")
|
||||
.navigationBarTitleDisplayMode(.inline)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -258,5 +267,7 @@ struct March2022: View {
|
|||
}
|
||||
.padding(30)
|
||||
}
|
||||
.navigationTitle("March 2022 Log")
|
||||
.navigationBarTitleDisplayMode(.inline)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import SwiftUI
|
|||
import Foundation
|
||||
|
||||
struct ContentView: View {
|
||||
@FocusState private var nameIsFocused: Bool
|
||||
var SISystem = ["km","mi"]
|
||||
@State var timeHours: String = ""
|
||||
@State var timeMinutes: String = ""
|
||||
|
|
@ -18,11 +19,13 @@ struct ContentView: View {
|
|||
|
||||
var body: some View {
|
||||
VStack {
|
||||
Spacer()
|
||||
VStack {
|
||||
TextField("Enter distance here", text: $distance)
|
||||
.padding()
|
||||
.keyboardType(.decimalPad)
|
||||
.textFieldStyle(.roundedBorder)
|
||||
.focused($nameIsFocused)
|
||||
}
|
||||
VStack {
|
||||
Text("Unit of measurement:")
|
||||
|
|
@ -39,6 +42,7 @@ struct ContentView: View {
|
|||
TextField("Enter hours here", text: $timeHours)
|
||||
.keyboardType(.numberPad)
|
||||
.textFieldStyle(.roundedBorder)
|
||||
.focused($nameIsFocused)
|
||||
}
|
||||
.frame(minWidth: 100)
|
||||
.padding(.trailing, -15)
|
||||
|
|
@ -48,6 +52,7 @@ struct ContentView: View {
|
|||
TextField("Enter minutes here", text: $timeMinutes)
|
||||
.keyboardType(.numberPad)
|
||||
.textFieldStyle(.roundedBorder)
|
||||
.focused($nameIsFocused)
|
||||
}
|
||||
.frame(minWidth: 100)
|
||||
.padding(.trailing, -15)
|
||||
|
|
@ -58,6 +63,7 @@ struct ContentView: View {
|
|||
TextField("Enter seconds here", text: $timeSeconds)
|
||||
.keyboardType(.numberPad)
|
||||
.textFieldStyle(.roundedBorder)
|
||||
.focused($nameIsFocused)
|
||||
}
|
||||
.frame(minWidth: 100)
|
||||
.padding(.leading, -15)
|
||||
|
|
@ -65,6 +71,13 @@ struct ContentView: View {
|
|||
}
|
||||
PaceResults(timeHours: $timeHours, timeMinutes: $timeMinutes, timeSeconds: $timeSeconds, selectedSystem: $selectedSystem, distance: $distance)
|
||||
}
|
||||
Spacer()
|
||||
if nameIsFocused == true {
|
||||
Button("Done") {
|
||||
nameIsFocused = false
|
||||
}
|
||||
.padding()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -164,11 +177,11 @@ struct PaceResults: View {
|
|||
HStack {
|
||||
VStack {
|
||||
Text("Distance: \(distance)\(selectedSystem)")
|
||||
Text("Converted distance: \(convertedDistanceString)\(notSelectedSystem)")
|
||||
Text("Distance: \(convertedDistanceString)\(notSelectedSystem)")
|
||||
}
|
||||
Text("Total time: \(hoursFormatted):\(leadingZeros)")
|
||||
Text("Total time\n\(hoursFormatted):\(leadingZeros)")
|
||||
.padding()
|
||||
VStack {
|
||||
VStack(alignment: .trailing) {
|
||||
Text("\(paceFormatted) per \(selectedSystem)")
|
||||
Text("\(paceFormattedOpposite) per \(notSelectedSystem)")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,12 +11,20 @@ import SwiftUI
|
|||
// human-readable without aid, as long as
|
||||
// the reader has a basic understanding of
|
||||
// Swift and/or SwiftUI.
|
||||
|
||||
let username = "admin"
|
||||
let password = "123"
|
||||
|
||||
struct DocsView: View {
|
||||
@State var pass: String = ""
|
||||
@State var user: String = ""
|
||||
enum Field: Hashable {
|
||||
case username
|
||||
case password
|
||||
}
|
||||
|
||||
@State private var pass: String = ""
|
||||
@State private var user: String = ""
|
||||
@FocusState private var focusedField: Field?
|
||||
|
||||
var body: some View {
|
||||
NavigationView {
|
||||
List {
|
||||
|
|
@ -36,14 +44,22 @@ struct DocsView: View {
|
|||
}
|
||||
Section(header: Text("App Information")) {
|
||||
NavigationLink("Software License", destination: LicenseView())
|
||||
Text("Version: 1.0.0")
|
||||
Text("Version: Release Candidate (1.0.0)")
|
||||
Text("Release date: 2022-06-10")
|
||||
Text("Start date: 2022-03-25")
|
||||
Link("Built with SwiftUI \(Image(systemName: "swift"))", destination: URL(string: "https://developer.apple.com/xcode/swiftui")!)
|
||||
}
|
||||
Section(header: Text("Login")) {
|
||||
SecureField("Username", text: $user)
|
||||
.keyboardType(.alphabet)
|
||||
.textContentType(.username)
|
||||
.submitLabel(.next)
|
||||
.focused($focusedField, equals: .username)
|
||||
SecureField("Password", text: $pass)
|
||||
.keyboardType(.numbersAndPunctuation)
|
||||
.textContentType(.password)
|
||||
.submitLabel(.done)
|
||||
.focused($focusedField, equals: .password)
|
||||
if (pass == password && user == username) {
|
||||
NavigationLink("Contacts", destination: SecretView())
|
||||
}
|
||||
|
|
@ -51,6 +67,14 @@ struct DocsView: View {
|
|||
}
|
||||
.navigationTitle("Docs")
|
||||
}
|
||||
.onSubmit {
|
||||
switch focusedField {
|
||||
case .username:
|
||||
focusedField = .password
|
||||
default:
|
||||
()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,10 +10,6 @@ import SwiftUI
|
|||
struct NewFeatures: View {
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
Text("New Features\n")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
.padding(.top, 40)
|
||||
VStack(alignment: .leading) {
|
||||
Text("\u{2022} Reformatted the Docs tabs and made the common things up at the top")
|
||||
Text("Implemented in Version Prerelease LVSXT10d.2\n")
|
||||
|
|
@ -30,6 +26,7 @@ struct NewFeatures: View {
|
|||
}
|
||||
.padding(30)
|
||||
}
|
||||
.navigationTitle("New Features")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -48,6 +45,7 @@ struct InProgressFeatures: View {
|
|||
}
|
||||
.padding(30)
|
||||
}
|
||||
.navigationTitle("In Progress")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -66,6 +64,7 @@ struct DeprecatedFeatures: View {
|
|||
}
|
||||
.padding(30)
|
||||
}
|
||||
.navigationTitle("Deprecated")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,61 +12,49 @@ import SwiftUI
|
|||
struct RecentlyResolved: View {
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
Text("Recently Resolved Issues")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
.padding(.top, 40)
|
||||
VStack(alignment: .leading) {
|
||||
Text("\n\u{2022} None since the addition of this tab")
|
||||
Text("\u{2022} Implemented an easy way to dismiss the keyboard in the main view of Calculator (it only took 2 1/2 months)")
|
||||
}
|
||||
.padding(30)
|
||||
}
|
||||
.navigationTitle("Recently Resolved")
|
||||
}
|
||||
}
|
||||
|
||||
struct HighPriority: View {
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
Text("High Priority Issues")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
.padding(.top, 40)
|
||||
VStack(alignment: .leading) {
|
||||
Text("\n\u{2022} You can not dismiss the keyboard on iPhone\n\t\u{2022} This hides the tab bar at the bottom so you can't navigate the app after bringing it up")
|
||||
Text("Tapping on the Contacts tab after entering correct login details causes the app to crash")
|
||||
}
|
||||
.padding(30)
|
||||
}
|
||||
.navigationTitle("High Priority")
|
||||
}
|
||||
}
|
||||
|
||||
struct MediumPriority: View {
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
Text("Medium Priority Issues")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
.padding(.top, 40)
|
||||
VStack(alignment: .leading) {
|
||||
Text("Wow. Such Empty.")
|
||||
.italic()
|
||||
}
|
||||
.padding(30)
|
||||
}
|
||||
.navigationTitle("Medium Priority")
|
||||
}
|
||||
}
|
||||
|
||||
struct LowPriority: View {
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
Text("Low Priority Issues")
|
||||
.font(.largeTitle)
|
||||
.bold()
|
||||
.padding(.top, 40)
|
||||
VStack(alignment: .leading) {
|
||||
Text("\n\u{2022} Space between the equation and explanation in the \"Help\" tab is too large\n\u{2022} App has no custom icon")
|
||||
Text("\u{2022} Space between the equation and explanation in the \"Help\" tab is too large\n\u{2022} App has no custom icon")
|
||||
}
|
||||
.padding(30)
|
||||
}
|
||||
.navigationTitle("Low Priority")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
import SwiftUI
|
||||
|
||||
struct LicenseView: View {
|
||||
var fontSize:CGFloat {UIScreen.main.bounds.width > 700 ? 18 : 8}
|
||||
var fontSize:CGFloat {UIScreen.main.bounds.width > 700 ? 18 : 9}
|
||||
// figuring out how to do this came partly from tinyurl.com/9snwkrzt
|
||||
// and also partly from stackoverflow.com/questions/57727107/
|
||||
// then I remembered about ternary operators and I optimized it
|
||||
|
|
@ -96,10 +96,13 @@ struct LicenseView: View {
|
|||
Text("Updated: 2022-06-09")
|
||||
}
|
||||
.navigationTitle("Software License Agreement")
|
||||
.navigationBarTitleDisplayMode(.inline)
|
||||
// sets the top of the screen to this text which always
|
||||
// lets you know what page you're in
|
||||
.padding()
|
||||
.frame(maxWidth: .infinity)
|
||||
// this just makes it so you can scroll anywhere on screen
|
||||
// instead of only in the frame
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import SwiftUI
|
|||
struct SecretView: View {
|
||||
var body: some View {
|
||||
VStack {
|
||||
HStack {
|
||||
ScrollView {
|
||||
VStack {
|
||||
Image("jake.zimmerman.group")
|
||||
.resizable()
|
||||
|
|
@ -59,8 +59,6 @@ Email: bostc@students.lakeviewspartans.org
|
|||
}
|
||||
.frame(minWidth: 350, minHeight: 175)
|
||||
.border(.primary)
|
||||
}
|
||||
HStack {
|
||||
VStack {
|
||||
Image("aiden.moore.states")
|
||||
.resizable()
|
||||
|
|
@ -104,6 +102,8 @@ Email: greenei@students.lakeviewspartans.org
|
|||
.frame(minWidth: 350, minHeight: 175)
|
||||
.border(.primary)
|
||||
}
|
||||
}
|
||||
.navigationTitle("Contacts")
|
||||
}
|
||||
.frame(minWidth: .infinity)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue