d
This commit is contained in:
@@ -8,41 +8,36 @@
|
|||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
1F083A14C69F20A6BA92A63E /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */; };
|
1F083A14C69F20A6BA92A63E /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */; };
|
||||||
A6E529FBA0467549623E44A5 /* Main.Section16Buttons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 032C8E87061765718F550E70 /* Main.Section16Buttons.swift */; };
|
79FB208C9DADDA6179E588C3 /* Main.SectionGrid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AC22F19366076CF4168BFBD /* Main.SectionGrid.swift */; };
|
||||||
AEDC5FB14A2EE027C2F7FDA7 /* Main.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC87DC40D65BB2748668CE65 /* Main.swift */; };
|
|
||||||
B19B3998FA2BA651ACB1E53C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C1742EFC5A1E818780679340 /* Assets.xcassets */; };
|
B19B3998FA2BA651ACB1E53C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C1742EFC5A1E818780679340 /* Assets.xcassets */; };
|
||||||
CAFD870CA84084E45011CC23 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */; };
|
CAFD870CA84084E45011CC23 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */; };
|
||||||
D65ED8EB653B36E6C4094996 /* Main.VC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EAF8AC4A5A1BCE77350565E /* Main.VC.swift */; };
|
D505E64F4CD6EAEB530BF851 /* Main.Section16Buttons.swift in Sources */ = {isa = PBXBuildFile; fileRef = A38A1AA6B57483F6B44CDF78 /* Main.Section16Buttons.swift */; };
|
||||||
|
DB1010B8A246D47BEC6B3FA6 /* Main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DF762100A8EDF105B6E136D /* Main.swift */; };
|
||||||
|
EB8CC50236A211D932BA0DB0 /* Main.Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = A355A898E25602F45B88CCBA /* Main.Platform.swift */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
032C8E87061765718F550E70 /* Main.Section16Buttons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.Section16Buttons.swift; sourceTree = "<group>"; };
|
0DF762100A8EDF105B6E136D /* Main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.swift; sourceTree = "<group>"; };
|
||||||
4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
|
4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||||
6EAF8AC4A5A1BCE77350565E /* Main.VC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.VC.swift; sourceTree = "<group>"; };
|
9AC22F19366076CF4168BFBD /* Main.SectionGrid.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.SectionGrid.swift; sourceTree = "<group>"; };
|
||||||
9D774FEE86833E8A0A74387C /* App.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
9D774FEE86833E8A0A74387C /* App.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
A355A898E25602F45B88CCBA /* Main.Platform.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.Platform.swift; sourceTree = "<group>"; };
|
||||||
|
A38A1AA6B57483F6B44CDF78 /* Main.Section16Buttons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.Section16Buttons.swift; sourceTree = "<group>"; };
|
||||||
C1742EFC5A1E818780679340 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
C1742EFC5A1E818780679340 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||||
CC87DC40D65BB2748668CE65 /* Main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Main.swift; sourceTree = "<group>"; };
|
|
||||||
F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
/* Begin PBXGroup section */
|
||||||
43F40869C11E8EE85952F2E9 /* Main */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
032C8E87061765718F550E70 /* Main.Section16Buttons.swift */,
|
|
||||||
CC87DC40D65BB2748668CE65 /* Main.swift */,
|
|
||||||
6EAF8AC4A5A1BCE77350565E /* Main.VC.swift */,
|
|
||||||
);
|
|
||||||
path = Main;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
667BC26EA8068A9FA707FC02 /* src */ = {
|
667BC26EA8068A9FA707FC02 /* src */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */,
|
F16A7DD61EF6CD4FB4E3DE25 /* AppDelegate.swift */,
|
||||||
C1742EFC5A1E818780679340 /* Assets.xcassets */,
|
C1742EFC5A1E818780679340 /* Assets.xcassets */,
|
||||||
4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */,
|
4E32B0495E4BCEA4EE0508D4 /* LaunchScreen.storyboard */,
|
||||||
43F40869C11E8EE85952F2E9 /* Main */,
|
A355A898E25602F45B88CCBA /* Main.Platform.swift */,
|
||||||
|
A38A1AA6B57483F6B44CDF78 /* Main.Section16Buttons.swift */,
|
||||||
|
9AC22F19366076CF4168BFBD /* Main.SectionGrid.swift */,
|
||||||
|
0DF762100A8EDF105B6E136D /* Main.swift */,
|
||||||
);
|
);
|
||||||
name = src;
|
name = src;
|
||||||
path = ../src;
|
path = ../src;
|
||||||
@@ -127,9 +122,10 @@
|
|||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
1F083A14C69F20A6BA92A63E /* AppDelegate.swift in Sources */,
|
1F083A14C69F20A6BA92A63E /* AppDelegate.swift in Sources */,
|
||||||
A6E529FBA0467549623E44A5 /* Main.Section16Buttons.swift in Sources */,
|
EB8CC50236A211D932BA0DB0 /* Main.Platform.swift in Sources */,
|
||||||
D65ED8EB653B36E6C4094996 /* Main.VC.swift in Sources */,
|
D505E64F4CD6EAEB530BF851 /* Main.Section16Buttons.swift in Sources */,
|
||||||
AEDC5FB14A2EE027C2F7FDA7 /* Main.swift in Sources */,
|
79FB208C9DADDA6179E588C3 /* Main.SectionGrid.swift in Sources */,
|
||||||
|
DB1010B8A246D47BEC6B3FA6 /* Main.swift in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
|||||||
Binary file not shown.
@@ -11,7 +11,7 @@ extension AppDelegate {
|
|||||||
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
|
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
|
||||||
) -> Bool {
|
) -> Bool {
|
||||||
window = UIWindow(frame: UIScreen.main.bounds)
|
window = UIWindow(frame: UIScreen.main.bounds)
|
||||||
window?.rootViewController = Main.VC()
|
window?.rootViewController = Main.Core()
|
||||||
window?.makeKeyAndVisible()
|
window?.makeKeyAndVisible()
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
import UIKit
|
import UIKit
|
||||||
|
|
||||||
|
// MARK: - Ядро-VC
|
||||||
|
|
||||||
extension Main {
|
extension Main {
|
||||||
class VC: UIViewController {
|
class Core: UIViewController {
|
||||||
var buttons = [UIButton]()
|
var buttons = [UIButton]()
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
@@ -10,6 +12,7 @@ extension Main {
|
|||||||
view.backgroundColor = .white
|
view.backgroundColor = .white
|
||||||
|
|
||||||
Main.Section16Buttons.setupCore(self)
|
Main.Section16Buttons.setupCore(self)
|
||||||
|
Main.SectionGrid.setupCore(self)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
21
iOS/src/Main.Section16Buttons.swift
Normal file
21
iOS/src/Main.Section16Buttons.swift
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
import UIKit
|
||||||
|
|
||||||
|
// MARK: - Протоколы
|
||||||
|
|
||||||
|
protocol MainSection16Buttons { }
|
||||||
|
|
||||||
|
// MARK: - Реализация
|
||||||
|
|
||||||
|
extension Main {
|
||||||
|
enum Section16Buttons {
|
||||||
|
static func setupCore(_ core: Main.Core) {
|
||||||
|
// Создаём 16 кнопок.
|
||||||
|
for i in 0..<16 {
|
||||||
|
let btn = UIButton()
|
||||||
|
btn.tag = i
|
||||||
|
core.view.addSubview(btn)
|
||||||
|
core.buttons.append(btn)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
25
iOS/src/Main.SectionGrid.swift
Normal file
25
iOS/src/Main.SectionGrid.swift
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import UIKit
|
||||||
|
|
||||||
|
// MARK: - Протоколы
|
||||||
|
|
||||||
|
protocol MainSectionGrid { }
|
||||||
|
|
||||||
|
// MARK: - Реализация
|
||||||
|
|
||||||
|
extension Main {
|
||||||
|
enum SectionGrid {
|
||||||
|
static func setupCore(_ core: Main.Core) {
|
||||||
|
let side = 50
|
||||||
|
let space = 20
|
||||||
|
let gap = side + space
|
||||||
|
|
||||||
|
// Расставляем кнопки в сетке 4x4.
|
||||||
|
for btn in core.buttons {
|
||||||
|
let id = btn.tag
|
||||||
|
let row = Int(id / 4)
|
||||||
|
btn.frame = CGRect(x: gap + (id - row * 4) * gap, y: gap + row * gap, width: side, height: side)
|
||||||
|
btn.backgroundColor = .blue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user