teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

10

インデント修正

2016/08/25 05:20

投稿

yukitoto
yukitoto

スコア53

title CHANGED
File without changes
body CHANGED
@@ -34,16 +34,17 @@
34
34
 
35
35
  ```swift
36
36
  class ModalViewController: UIView {
37
+
37
38
  override func loadView() {
38
- let modalView = ModalView()
39
+ let modalView = ModalView()
39
- modalView.frame = self.view.frame
40
+ modalView.frame = self.view.frame
40
- self.view = modalView
41
+ self.view = modalView
41
42
  }
42
43
  }
43
44
 
44
45
  class ModalView: UIView {
45
- let headerView = UIView()
46
+ let headerView = UIView()
46
- let headerGradationLayer = CAGradientLayer()
47
+ let headerGradationLayer = CAGradientLayer()
47
48
 
48
49
  init() {
49
50
  super.init(frame: .zero)
@@ -55,7 +56,7 @@
55
56
  setHeaderView()
56
57
  }
57
58
 
58
- private func setHeaderView() {
59
+ private func setHeaderView() {
59
60
  let gradationColors = [UIColor.myGradationStartColor().CGColor, UIColor.myGradationEndColor().CGColor]
60
61
  headerGradationLayer.colors = gradationColors
61
62
  headerView.layer.insertSublayer(headerGradationLayer, atIndex: 0)

9

viewのコードをより詳細に

2016/08/25 05:20

投稿

yukitoto
yukitoto

スコア53

title CHANGED
File without changes
body CHANGED
@@ -33,7 +33,17 @@
33
33
  基本的には以下のスニペットの構成で、View自体はサブクラスで作成しております。
34
34
 
35
35
  ```swift
36
+ class ModalViewController: UIView {
37
+ override func loadView() {
38
+ let modalView = ModalView()
39
+ modalView.frame = self.view.frame
40
+ self.view = modalView
41
+ }
42
+ }
43
+
36
44
  class ModalView: UIView {
45
+ let headerView = UIView()
46
+ let headerGradationLayer = CAGradientLayer()
37
47
 
38
48
  init() {
39
49
  super.init(frame: .zero)
@@ -41,18 +51,16 @@
41
51
  self.backgroundColor = UIColor.whiteColor()
42
52
  self.clipsToBounds = true
43
53
  self.layer.cornerRadius = 10
54
+
44
- // グラデーションもセット
55
+ setHeaderView()
45
56
  }
46
- }
47
57
 
48
-
49
- class ModalViewController: UIView {
50
- override func loadView() {
58
+ private func setHeaderView() {
51
- let modalView = ModalView()
59
+ let gradationColors = [UIColor.myGradationStartColor().CGColor, UIColor.myGradationEndColor().CGColor]
52
- modalView.frame = self.view.frame
60
+ headerGradationLayer.colors = gradationColors
61
+ headerView.layer.insertSublayer(headerGradationLayer, atIndex: 0)
53
- self.view = modalView
62
+ self.addSubview(headerView)
54
- }
63
+ }
55
-
56
64
  }
57
65
  ```
58
66
 

8

誤字修正

2016/08/25 05:18

投稿

yukitoto
yukitoto

スコア53

title CHANGED
File without changes
body CHANGED
@@ -56,5 +56,5 @@
56
56
  }
57
57
  ```
58
58
 
59
- 詳しく調べてみると、push遷移をする際に、遷移前のVCのviewの角が一度丸じゃなくなるという現象のようです。
59
+ 詳しく調べてみると、push遷移をする際に、遷移前のViewControllerのviewの角が一度丸じゃなくなるという現象のようです。
60
60
  ![色を変えてわかりやすく](2953b8b39b6945a46e65296d4e75611a.gif)

7

命名修正

2016/08/25 05:16

投稿

yukitoto
yukitoto

スコア53

title CHANGED
File without changes
body CHANGED
@@ -48,9 +48,9 @@
48
48
 
49
49
  class ModalViewController: UIView {
50
50
  override func loadView() {
51
- let customView = ModalView()
51
+ let modalView = ModalView()
52
- customView.frame = self.view.frame
52
+ modalView.frame = self.view.frame
53
- self.view = customView
53
+ self.view = modalView
54
54
  }
55
55
 
56
56
  }

6

Viewサブクラスについて

2016/08/25 05:13

投稿

yukitoto
yukitoto

スコア53

title CHANGED
File without changes
body CHANGED
@@ -30,5 +30,31 @@
30
30
  self.navigationController?.pushViewController(nextViewController, animated: true)
31
31
  ```
32
32
 
33
+ 基本的には以下のスニペットの構成で、View自体はサブクラスで作成しております。
34
+
35
+ ```swift
36
+ class ModalView: UIView {
37
+
38
+ init() {
39
+ super.init(frame: .zero)
40
+
41
+ self.backgroundColor = UIColor.whiteColor()
42
+ self.clipsToBounds = true
43
+ self.layer.cornerRadius = 10
44
+ // グラデーションもセット
45
+ }
46
+ }
47
+
48
+
49
+ class ModalViewController: UIView {
50
+ override func loadView() {
51
+ let customView = ModalView()
52
+ customView.frame = self.view.frame
53
+ self.view = customView
54
+ }
55
+
56
+ }
57
+ ```
58
+
33
59
  詳しく調べてみると、push遷移をする際に、遷移前のVCのviewの角が一度丸じゃなくなるという現象のようです。
34
60
  ![色を変えてわかりやすく](2953b8b39b6945a46e65296d4e75611a.gif)

5

マークダウンの追加

2016/08/25 05:13

投稿

yukitoto
yukitoto

スコア53

title CHANGED
File without changes
body CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  ![イメージ](ef90f1e8346a9cd5f2fa205a68081937.gif)
26
26
 
27
- 追記
27
+ #### 追記
28
28
  ページ遷移はpushで行っております。
29
29
  ```swift
30
30
  self.navigationController?.pushViewController(nextViewController, animated: true)

4

詳細追記

2016/08/25 05:10

投稿

yukitoto
yukitoto

スコア53

title CHANGED
File without changes
body CHANGED
@@ -22,4 +22,13 @@
22
22
 
23
23
  ぜひお力をお貸しください。
24
24
 
25
- ![イメージ](ef90f1e8346a9cd5f2fa205a68081937.gif)
25
+ ![イメージ](ef90f1e8346a9cd5f2fa205a68081937.gif)
26
+
27
+ 追記
28
+ ページ遷移はpushで行っております。
29
+ ```swift
30
+ self.navigationController?.pushViewController(nextViewController, animated: true)
31
+ ```
32
+
33
+ 詳しく調べてみると、push遷移をする際に、遷移前のVCのviewの角が一度丸じゃなくなるという現象のようです。
34
+ ![色を変えてわかりやすく](2953b8b39b6945a46e65296d4e75611a.gif)

3

追記

2016/08/25 05:10

投稿

yukitoto
yukitoto

スコア53

title CHANGED
File without changes
body CHANGED
@@ -5,10 +5,11 @@
5
5
  そのheaderViewに対して、CAGradiationLayerでグラデーションをかけています。
6
6
  今回は全体を角丸にしたいので、ベースとなるビューに対して、`layer.cornerRadius = 10, clipsToBounds = true` のプロパティをセットしています。
7
7
 
8
- 問題になっているのが、このcornerRadiusがグラデーション部分に反映されるのが遅い、ということです。
8
+ 問題になっているのが、ページ遷移を行った際に、このcornerRadiusがグラデーション部分に反映されるのが遅い、ということです。
9
- はじめに四角で表示され、fadeされる形で角丸に
9
+ 追記:グラデーションを掛けくてもこの現象が発生しした
10
- これを初めから角丸で表示したいです。
11
10
 
11
+ はじめに四角で表示され、fadeされる形で角丸になります。これを初めから角丸で表示したいです。
12
+
12
13
  以下がサンプルコードです。
13
14
 
14
15
  ```swift

2

イメージ修正

2016/08/24 22:35

投稿

yukitoto
yukitoto

スコア53

title CHANGED
File without changes
body CHANGED
@@ -21,4 +21,4 @@
21
21
 
22
22
  ぜひお力をお貸しください。
23
23
 
24
- ![イメージ](https://i.gyazo.com/ac046871c3d4b0467ee030556c36934a.gif)
24
+ ![イメージ](ef90f1e8346a9cd5f2fa205a68081937.gif)

1

イメージの追加

2016/08/24 22:33

投稿

yukitoto
yukitoto

スコア53

title CHANGED
File without changes
body CHANGED
@@ -19,4 +19,6 @@
19
19
 
20
20
  `headerGradationLayer.removeAllAnimations()`なども試みてみたのですが、フェードが消えるだけで、遅れてくるという問題は解消されませでした。
21
21
 
22
- ぜひお力をお貸しください。
22
+ ぜひお力をお貸しください。
23
+
24
+ ![イメージ](https://i.gyazo.com/ac046871c3d4b0467ee030556c36934a.gif)