質問編集履歴
1
説明文の追加と軽微な修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,8 +11,10 @@
|
|
11
11
|
### 問題が起こっているViewController
|
12
12
|
```swift
|
13
13
|
class SearchViewController: UIViewController {
|
14
|
+
//検索ボタンの上下空白
|
14
15
|
private let buttonVerticalMargin: CGFloat = 60.0
|
15
16
|
|
17
|
+
//APIのための構造体
|
16
18
|
struct searchingBookInfo {
|
17
19
|
var title: String?
|
18
20
|
var authors: [String?]
|
@@ -23,6 +25,7 @@
|
|
23
25
|
var ISBNCode: String?
|
24
26
|
}
|
25
27
|
|
28
|
+
//入力欄ひとつ分を表す構造体
|
26
29
|
struct MainInputStruct {
|
27
30
|
var label: MainInputLabel
|
28
31
|
var textField: MainInputTextField
|
@@ -31,6 +34,7 @@
|
|
31
34
|
var keyboardType: Int = 0
|
32
35
|
}
|
33
36
|
|
37
|
+
//入力欄UIのインスタンス郡
|
34
38
|
private let titleInputLabel: MainInputLabel = MainInputLabel()
|
35
39
|
private let titleInputTextField: MainInputTextField = MainInputTextField()
|
36
40
|
|
@@ -53,41 +57,15 @@
|
|
53
57
|
private let isbnCodeInputTextField: MainInputTextField = MainInputTextField()
|
54
58
|
|
55
59
|
private let searchButton: MainCenterButton = MainCenterButton()
|
56
|
-
|
57
|
-
|
60
|
+
|
58
|
-
title: nil,
|
59
|
-
authors: [],
|
60
|
-
publisher: nil,
|
61
|
-
edition: nil,
|
62
|
-
condition: nil,
|
63
|
-
priceUpperLimit: nil,
|
64
|
-
ISBNCode: nil,
|
65
|
-
)
|
66
|
-
|
67
|
-
|
68
61
|
@objc private func searchButtonEvent(_ sender: MainCenterButton) {
|
69
|
-
sender.setTitle("検索中", for: UIControl.State.normal)
|
70
|
-
|
71
|
-
searchData = searchingBookInfo(
|
72
|
-
title: titleInputTextField.text!,
|
73
|
-
authors: [authorInputTextField.text!],
|
74
|
-
publisher: publisherInputTextField.text!,
|
75
|
-
edition: editionInputTextField.text!,
|
76
|
-
condition: conditionInputTextField.text!,
|
77
|
-
priceUpperLimit: upperLimitInputTextField.text!,
|
78
|
-
ISBNCode: isbnCodeInputTextField.text!,
|
79
|
-
)
|
80
|
-
|
62
|
+
//検索ボタン押下処理
|
81
63
|
}
|
82
64
|
|
83
|
-
override func viewDidLayoutSubviews() {
|
84
|
-
super.viewDidLayoutSubviews()
|
85
|
-
|
86
|
-
view.layoutIfNeeded()
|
87
|
-
}
|
88
|
-
|
89
65
|
override func viewDidLoad() {
|
90
66
|
super.viewDidLoad()
|
67
|
+
|
68
|
+
//入力欄の配置ViewとScrollView
|
91
69
|
let searchPageScrollView: UIScrollView = UIScrollView()
|
92
70
|
self.view.addSubview(searchPageScrollView)
|
93
71
|
searchPageScrollView.translatesAutoresizingMaskIntoConstraints = false
|
@@ -113,6 +91,7 @@
|
|
113
91
|
searchPageScrollView.contentLayoutGuide.bottomAnchor.constraint(equalTo: searchPageContentView.bottomAnchor)
|
114
92
|
])
|
115
93
|
|
94
|
+
//検索ボタン
|
116
95
|
searchButton.setTitle("検索", for: UIControl.State.normal)
|
117
96
|
searchButton.addTarget(self, action: #selector(searchButtonEvent(_:)), for: UIControl.Event.touchUpInside)
|
118
97
|
self.view.addSubview(searchButton)
|
@@ -124,6 +103,7 @@
|
|
124
103
|
searchButton.widthAnchor.constraint(equalTo: self.view.widthAnchor, multiplier: 0.86),
|
125
104
|
])
|
126
105
|
|
106
|
+
//入力欄構造体MainInputStructの配列
|
127
107
|
let mainInputs:[MainInputStruct] = [
|
128
108
|
MainInputStruct(label: titleInputLabel, textField: titleInputTextField, labelText: "タイトル・書籍名", placeholderText: "タイトル・書籍名を入力"),
|
129
109
|
MainInputStruct(label: authorInputLabel, textField: authorInputTextField, labelText: "筆者・訳者", placeholderText: "筆者・訳者名を入力"),
|
@@ -134,6 +114,7 @@
|
|
134
114
|
MainInputStruct(label: isbnCodeInputLabel, textField: isbnCodeInputTextField, labelText: "ISBNコード", placeholderText: "ISBNコードを入力"),
|
135
115
|
]
|
136
116
|
|
117
|
+
//appendMainInputs()メソッドで配置
|
137
118
|
self.appendMainInputs(structArray: mainInputs, target: searchPageContentView.topAnchor, firstConstant: (buttonVerticalMargin*2 + 60.0), appendTargetView: searchPageContentView)
|
138
119
|
NSLayoutConstraint.activate([
|
139
120
|
searchPageContentView.heightAnchor.constraint(equalToConstant: 1200.0),
|