質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

1987閲覧

Swift3 カスタムビューにグラデーションをつけたい

Robokun

総合スコア53

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2016/11/15 07:40

編集2016/11/15 08:40

Swift3で描画処理の勉強をしています。

実現したい事はViewにグラデーションをつけたいという事です。
カスタムビューを作りグラデーションをつけようと思ったのですがうまく行きません。
実装途中ですが、今考えているコードを貼り付けます。

customview.swift

1 2import UIKit 3 4class CustomView: UIView { 5 6 var graphWidth :CGFloat 7 var graphHeight :CGFloat 8 9 override func draw(_ rect: CGRect) { 10 let context = UIGraphicsGetCurrentContext() 11 12 let startColor = UIColor.black //始点の色 13 let endColor = UIColor.darkGray //終点の色 14 let colors = [startColor,endColor] 15 let locations:[CGFloat] = [0.0 , 1.0] 16 let space = CGColorSpaceCreateDeviceRGB() 17 18 let gradient = CGGradient(colorsSpace: space, colors: colors as CFArray, locations: locations) 19 20 let startPoint = CGPoint.zero 21 let endPoints = CGPoint(x:0,y:self.bounds.height) 22 context?.drawLinearGradient(gradient!, start: startPoint, end: endPoints, options: .drawsBeforeStartLocation) 23 } 24} 25

ネットで検索したら、このような流れなのではないかと思うのですが、うまく行きません。
グラデーションの実装方法はどうやったらいいのでしょうか?

デバッグの情報を追記します。
エラーメッセージとして
「fatal error: unexpectedly found nil while unwrapping an Optional value」
が出ており、
context?.drawLinearGradient(gradient!, start: startPoint, end: endPoints, options: .drawsBeforeStartLocation)
の部分で入れているgradientがnilなのが原因のようです。

そもそも、こういうコーディングでいいのか?という部分もありますので
ご存知の方教えていただければと思います

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

色はUIColorではなくCGColorで指定します。

swift

1let startColor = UIColor.black.cgColor //始点の色 2let endColor = UIColor.darkGray.cgColor //終点の色

投稿2016/11/15 08:48

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Robokun

2016/11/15 08:52

ありがとうございます。 悩んでいたのですが、修正を入れましたら、無事にRUNできました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問