質問編集履歴

2

追記

2016/11/15 08:40

投稿

Robokun
Robokun

スコア53

test CHANGED
File without changes
test CHANGED
@@ -69,3 +69,23 @@
69
69
  ネットで検索したら、このような流れなのではないかと思うのですが、うまく行きません。
70
70
 
71
71
  グラデーションの実装方法はどうやったらいいのでしょうか?
72
+
73
+
74
+
75
+ デバッグの情報を追記します。
76
+
77
+ エラーメッセージとして
78
+
79
+ 「fatal error: unexpectedly found nil while unwrapping an Optional value」
80
+
81
+ が出ており、
82
+
83
+ context?.drawLinearGradient(gradient!, start: startPoint, end: endPoints, options: .drawsBeforeStartLocation)
84
+
85
+ の部分で入れているgradientがnilなのが原因のようです。
86
+
87
+
88
+
89
+ そもそも、こういうコーディングでいいのか?という部分もありますので
90
+
91
+ ご存知の方教えていただければと思います

1

コードの修正

2016/11/15 08:40

投稿

Robokun
Robokun

スコア53

test CHANGED
File without changes
test CHANGED
@@ -30,14 +30,6 @@
30
30
 
31
31
  override func draw(_ rect: CGRect) {
32
32
 
33
- //描画領域を取得
34
-
35
- graphWidth = rect.width
36
-
37
- graphHeight = rect.height
38
-
39
-
40
-
41
33
  let context = UIGraphicsGetCurrentContext()
42
34
 
43
35
 
@@ -48,15 +40,21 @@
48
40
 
49
41
  let colors = [startColor,endColor]
50
42
 
51
- let locations = [0.0 , 1.0]
43
+ let locations:[CGFloat] = [0.0 , 1.0]
52
44
 
53
45
  let space = CGColorSpaceCreateDeviceRGB()
46
+
47
+
54
48
 
55
49
  let gradient = CGGradient(colorsSpace: space, colors: colors as CFArray, locations: locations)
56
50
 
57
51
 
58
52
 
53
+ let startPoint = CGPoint.zero
54
+
55
+ let endPoints = CGPoint(x:0,y:self.bounds.height)
56
+
59
- context?.drawLinearGradient(gradient:gradient, start: <#T##CGPoint#>, end: <#T##CGPoint#>, options: <#T##CGGradientDrawingOptions#>)
57
+ context?.drawLinearGradient(gradient!, start: startPoint, end: endPoints, options: .drawsBeforeStartLocation)
60
58
 
61
59
  }
62
60