回答編集履歴

4

修正

2016/03/30 15:40

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -171,3 +171,25 @@
171
171
  画面サイズが変わっても取得したサイズを使用しているので周囲の50pxマージンは維持されます。
172
172
 
173
173
  ![image](fd11564d76d13a87f59468a3e082f6e4.png)
174
+
175
+
176
+
177
+ ---
178
+
179
+ 以下の画像のようなエラーがでていますか?その場合下の対応を試してみてください。
180
+
181
+ ![image](9613796f1157fc1c940c35a3b3c2ce7a.png)
182
+
183
+
184
+
185
+
186
+
187
+ Storyboardに配置したViewとcustomViewを以下の様に結んでください。
188
+
189
+ それでも解決しない場合は他の原因が考えられますのでコードを載せて頂くと原因が見つけやすいと思います。
190
+
191
+
192
+
193
+
194
+
195
+ ![image2](cf13ee3a63c01b7b9e003dc0dc6c1aba.png)

3

追記

2016/03/30 15:40

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -1,4 +1,12 @@
1
1
  画面サイズ指定がCGFloatなので`UIScreenUtil`構造体のメソッドの戻り値を変更しましたが、以下の様に生成したViewのサイズに使うことができます。
2
+
3
+
4
+
5
+
6
+
7
+ コードで生成したViewの場合
8
+
9
+ ---
2
10
 
3
11
 
4
12
 
@@ -72,6 +80,94 @@
72
80
 
73
81
  ```
74
82
 
83
+ StoryboardのViewControllerに載せたViewの場合
84
+
85
+ ---
86
+
87
+ ```swift
88
+
89
+ import UIKit
90
+
91
+
92
+
93
+ class ViewController: UIViewController {
94
+
95
+
96
+
97
+ // マージンの定数
98
+
99
+ let margin: CGFloat = 50
100
+
101
+
102
+
103
+ // Storyboardに載せたview
104
+
105
+ @IBOutlet weak var customView: UIView!
106
+
107
+
108
+
109
+ override func viewDidLoad() {
110
+
111
+ super.viewDidLoad()
112
+
113
+
114
+
115
+ }
116
+
117
+
118
+
119
+ override func viewDidLayoutSubviews() {
120
+
121
+ super.viewDidLayoutSubviews()
122
+
123
+
124
+
125
+ // customViewの背景色を設定
126
+
127
+ customView.backgroundColor = UIColor.blueColor()
128
+
129
+ // 取得した画面サイスを使ってcustomViewのサイズを設定します。(上下左右に50pxのマージン)
130
+
131
+ customView.frame = CGRectMake(margin, margin, UIScreenUtil.screenWidth() - margin * 2, UIScreenUtil.screenHeight() - margin * 2)
132
+
133
+
134
+
135
+ }
136
+
137
+ }
138
+
139
+
140
+
141
+
142
+
143
+ struct UIScreenUtil {
144
+
145
+ static func bounds()->CGRect{
146
+
147
+ return UIScreen.mainScreen().bounds;
148
+
149
+ }
150
+
151
+
152
+
153
+ static func screenWidth() -> CGFloat {
154
+
155
+ return UIScreen.mainScreen().bounds.size.width;
156
+
157
+ }
158
+
159
+
160
+
161
+ static func screenHeight() -> CGFloat{
162
+
163
+ return UIScreen.mainScreen().bounds.size.height;
164
+
165
+ }
166
+
167
+ }
168
+
169
+ ```
170
+
75
- 画面サイズが変わっても周囲の50pxマージンは維持されます。
171
+ 画面サイズが変わっても取得したサイズを使用しているので周囲の50pxマージンは維持されます。
76
172
 
77
173
  ![image](fd11564d76d13a87f59468a3e082f6e4.png)

2

追記

2016/03/26 16:37

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -1,4 +1,4 @@
1
- 画面サイズ指定がCGFloatなので`UIScreenUtil`クラスの戻り値を変更しましたが、以下の様に生成したViewのサイズに使うことができます。
1
+ 画面サイズ指定がCGFloatなので`UIScreenUtil`構造体メソッドの戻り値を変更しましたが、以下の様に生成したViewのサイズに使うことができます。
2
2
 
3
3
 
4
4
 

1

追記

2016/03/26 16:19

投稿

_Kentarou
_Kentarou

スコア8490

test CHANGED
@@ -71,3 +71,7 @@
71
71
  }
72
72
 
73
73
  ```
74
+
75
+ 画面サイズが変わっても周囲の50pxマージンは維持されます。
76
+
77
+ ![image](fd11564d76d13a87f59468a3e082f6e4.png)