From 041cdc0dea38c1e70924c30ae7e29d570bdab95e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Mon, 1 May 2023 18:03:36 +0300 Subject: [PATCH] d --- iOS/app/MMMemory.xcodeproj/project.pbxproj | 20 ++++++++++++ .../UserInterfaceState.xcuserstate | Bin 15144 -> 21750 bytes iOS/src/AppDelegate.swift | 13 +------- iOS/src/Main/Main.Section16Buttons.swift | 29 ++++++++++++++++++ iOS/src/Main/Main.VC.swift | 15 +++++++++ iOS/src/Main/Main.swift | 1 + 6 files changed, 66 insertions(+), 12 deletions(-) create mode 100644 iOS/src/Main/Main.Section16Buttons.swift create mode 100644 iOS/src/Main/Main.VC.swift create mode 100644 iOS/src/Main/Main.swift diff --git a/iOS/app/MMMemory.xcodeproj/project.pbxproj b/iOS/app/MMMemory.xcodeproj/project.pbxproj index 4fdbece..fdbb878 100644 --- a/iOS/app/MMMemory.xcodeproj/project.pbxproj +++ b/iOS/app/MMMemory.xcodeproj/project.pbxproj @@ -8,24 +8,41 @@ /* Begin PBXBuildFile section */ 1F083A14C69F20A6BA92A63E /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */; }; + A6E529FBA0467549623E44A5 /* Main.Section16Buttons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 032C8E87061765718F550E70 /* Main.Section16Buttons.swift */; }; + AEDC5FB14A2EE027C2F7FDA7 /* Main.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC87DC40D65BB2748668CE65 /* Main.swift */; }; B19B3998FA2BA651ACB1E53C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C1742EFC5A1E818780679340 /* Assets.xcassets */; }; CAFD870CA84084E45011CC23 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */; }; + D65ED8EB653B36E6C4094996 /* Main.VC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EAF8AC4A5A1BCE77350565E /* Main.VC.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 032C8E87061765718F550E70 /* Main.Section16Buttons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.Section16Buttons.swift; sourceTree = ""; }; 4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; + 6EAF8AC4A5A1BCE77350565E /* Main.VC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.VC.swift; sourceTree = ""; }; 9D774FEE86833E8A0A74387C /* App.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; }; C1742EFC5A1E818780679340 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + CC87DC40D65BB2748668CE65 /* Main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.swift; sourceTree = ""; }; F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXGroup section */ + 43F40869C11E8EE85952F2E9 /* Main */ = { + isa = PBXGroup; + children = ( + 032C8E87061765718F550E70 /* Main.Section16Buttons.swift */, + CC87DC40D65BB2748668CE65 /* Main.swift */, + 6EAF8AC4A5A1BCE77350565E /* Main.VC.swift */, + ); + path = Main; + sourceTree = ""; + }; 667BC26EA8068A9FA707FC02 /* src */ = { isa = PBXGroup; children = ( F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */, C1742EFC5A1E818780679340 /* Assets.xcassets */, 4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */, + 43F40869C11E8EE85952F2E9 /* Main */, ); name = src; path = ../src; @@ -110,6 +127,9 @@ buildActionMask = 2147483647; files = ( 1F083A14C69F20A6BA92A63E /* AppDelegate.swift in Sources */, + A6E529FBA0467549623E44A5 /* Main.Section16Buttons.swift in Sources */, + D65ED8EB653B36E6C4094996 /* Main.VC.swift in Sources */, + AEDC5FB14A2EE027C2F7FDA7 /* Main.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/iOS/app/MMMemory.xcodeproj/project.xcworkspace/xcuserdata/mk.xcuserdatad/UserInterfaceState.xcuserstate b/iOS/app/MMMemory.xcodeproj/project.xcworkspace/xcuserdata/mk.xcuserdatad/UserInterfaceState.xcuserstate index e8865938b883cc718e0f2bd16cf291f9cb4709f6..980e77533633490497e41c4993c441aff5616e80 100644 GIT binary patch literal 21750 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 C18a`} diff --git a/iOS/src/AppDelegate.swift b/iOS/src/AppDelegate.swift index 405b089..c3f2d0a 100644 --- a/iOS/src/AppDelegate.swift +++ b/iOS/src/AppDelegate.swift @@ -10,21 +10,10 @@ extension AppDelegate { _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - let vc = UIViewController() - vc.view.backgroundColor = .white window = UIWindow(frame: UIScreen.main.bounds) - window?.rootViewController = vc + window?.rootViewController = Main.VC() window?.makeKeyAndVisible() return true } } - -extension AppDelegate { - private func setupMemory() { - /* - let w = Converter.World(converterModel) - converterS = Converter.Service(w) - */ - } -} diff --git a/iOS/src/Main/Main.Section16Buttons.swift b/iOS/src/Main/Main.Section16Buttons.swift new file mode 100644 index 0000000..486e506 --- /dev/null +++ b/iOS/src/Main/Main.Section16Buttons.swift @@ -0,0 +1,29 @@ +import UIKit + +// MARK: - Протоколы + +protocol MainSection16Buttons { +} + +// MARK: - Реализация + +extension Main { + enum Section16Buttons { + static func setupCore(_ core: Main.VC) { + // Создаём 16 кнопок. + for i in 0..<16 { + let btn = UIButton() + core.buttons.append(btn) + btn.tag = i + //????btn.addTarget(self, action: #selector(selectButton), for: .touchUpInside) + core.view.addSubview(btn) + } + + // Расставляем их в сетке 4x4. + for btn in core.buttons { + btn.frame = CGRect(x: 0, y: btn.tag * 60, width: 50, height: 50) + btn.backgroundColor = .blue + } + } + } +} diff --git a/iOS/src/Main/Main.VC.swift b/iOS/src/Main/Main.VC.swift new file mode 100644 index 0000000..8a3ae05 --- /dev/null +++ b/iOS/src/Main/Main.VC.swift @@ -0,0 +1,15 @@ +import UIKit + +extension Main { + class VC: UIViewController { + var buttons = [UIButton]() + + override func viewDidLoad() { + super.viewDidLoad() + + view.backgroundColor = .white + + Main.Section16Buttons.setupCore(self) + } + } +} diff --git a/iOS/src/Main/Main.swift b/iOS/src/Main/Main.swift new file mode 100644 index 0000000..ab14183 --- /dev/null +++ b/iOS/src/Main/Main.swift @@ -0,0 +1 @@ +enum Main { }