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

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

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

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

Swift

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

Q&A

解決済

1回答

1598閲覧

NSForegroundColorAttributeNameがエラーになる

rikkachan

総合スコア16

Xcode

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

Swift

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

0グッド

0クリップ

投稿2018/08/25 09:44

編集2019/02/02 08:13

こちらを参考にしてUISegmentControlのデザインを変更しようと、
エラー1
このように書いたところ、エラーが出てしまいました。
エラーのFixを押すと今度は黄色で下記のようなエラーが表示され
エラー2
最終的に下記のようになり、実機で確認しても文字色が白に変わりません。
イメージ説明

原因も解決方法もわからず困っております。
どうぞよろしくお願いいたします。

//UISegmentControlの見た目 @IBAction func Segment(_ sender: UISegmentedControl) { self.Segment.tintColor = UIColor.clear self.Segment.backgroundColor = UIColor(red: 255/255, green: 49/255, blue: 81/255, alpha: 1) let attribute = [kCTForegroundColorAttributeName:UIColor.white] self.Segment.setTitleTextAttributes(attribute, for: .normal) }

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

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

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

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

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

guest

回答1

0

ベストアンサー

黄色の警告からの想像ですが、つくってあげたattributeをどこかでつかってあげてますか?
↓の3行目に該当する部分。

swift

1let attribute = [kCTForegroundColorAttributeName:UIColor.white] 2// ↓この記述がないんじゃない? 3Outlet接続したセグメンテッドコントロール.setTitleTextAttributes(attribute, forState: .Normal)

####見落としていたので追記します。

~~SegmentedControlの初期プロパティの設定を変更するのでしたら、
違う場所、ViewControllerのviewDidLoadとかライフサイクル的に適切な場所に書いてあげてください。
~~
ティントカラーとかだから、ここでいいのかな?

####貼り付けてほしいコード
↓これを貼るとどんなエラーが出ますか? 色が変わらないだけで、エラーは出ないと思いますが。
タイプミスがあったらごめんなさい。

swift

1@IBAction func Segment(_ sender: UISegmentedControl) { 2 self.Segment.tintColor = UIColor.clear 3 self.Segment.backgroundColor = UIColor(red: 255/255, green: 49/255, blue: 81/255, alpha: 1) 4 let attribute = [kCTForegroundColorAttributeName:UIColor.white] 5 self.setTitleTextAttributes(attribute, for: .normal) 6}

投稿2018/08/25 09:52

編集2018/08/25 17:11
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

rikkachan

2018/08/25 16:46

回答ありがとうございます。 教えていただいたコードを入力しても同じエラーが出てしまいました。
rikkachan

2018/08/25 17:08

ありがとうございます。 早速入力してみましたが、エラーが出てしまいました。 エラー内容は以下のようになりました。 'Normal' is unavailable: use [] to construct an empty option set 'setTitleTextAttributes(_:forState:)' has been renamed to 'setTitleTextAttributes(_:for:)' Replace 'setTitleTextAttributes(attribute, forState' with 'setTitleTextAttributes(attribute, for'
退会済みユーザー

退会済みユーザー

2018/08/25 17:12

最後のsetTitle..のコード修正しました、xcode上で自動リネームして上げて実行するとどうなりますか? .
rikkachan

2018/08/25 17:15

ありがとうございます。下記エラーが表示されました。 Value of type 'ListViewController' has no member 'setTitleTextAttributes'
退会済みユーザー

退会済みユーザー

2018/08/25 17:19

コピペミスでした。 self.setTitleTextAttributes(attribute, for:.normal) ↓ self.Segment.setTitleTextAttributes(attribute, for: .normal)
rikkachan

2018/08/25 17:25

エラーがなくなりました!ありがとうございます、本当に助かりました。 もしよければどこが原因でどう解決されたのか教えていただけないでしょうか。
退会済みユーザー

退会済みユーザー

2018/08/25 17:33 編集

エラーが消えても動いてないと思いますが…。 編集済みのViewConntorller?をアップしていただけると説明する手間がだいぶ楽になるので質問文を編集して追加していただけないでしょうか?
rikkachan

2018/08/25 17:33

コードを全文コピペでここに貼り付ければいいんでしょうか?
退会済みユーザー

退会済みユーザー

2018/08/25 17:34

質問文を編集して、コードを```で囲ってあげてください。
退会済みユーザー

退会済みユーザー

2018/08/25 17:39

いや、そこだけじゃなくて全体をば。
rikkachan

2018/08/25 17:39

失礼しました。今編集しました。 あと、今確認したところ文字色が白くなっていなかったのですが、私の認識では let attribute = [kCTForegroundColorAttributeName:UIColor.white] ↑これで文字が白くなると思っていたのですが…違うのでしょうか?
退会済みユーザー

退会済みユーザー

2018/08/25 17:42

そこはこっちです。 ↓ let attribute = [NSAttributedStringKey.foregroundColor:UIColor.white]
退会済みユーザー

退会済みユーザー

2018/08/25 17:45

今の状態だと、セグメンテッドコントロールをタップしないと色が変わりませんがそれじゃだめですよね?
rikkachan

2018/08/25 17:51

今、viewDidLoad()内に self.Segment.tintColor = UIColor.clear self.Segment.backgroundColor = UIColor(red: 255/255, green: 49/255, blue: 81/255, alpha: 1) let attribute = [NSAttributedStringKey.foregroundColor:UIColor.white] self.Segment.setTitleTextAttributes(attribute, for: .normal) を追加して最初から色がつくようにしたのですが、この方法で大丈夫でしょうか?
退会済みユーザー

退会済みユーザー

2018/08/25 17:57

はいそれでOKだと思います。 問題点をサクッと指摘できなくてすいませんでした。
退会済みユーザー

退会済みユーザー

2018/08/25 17:59 編集

あとは参照されているリンク先の指示通りすすめてみてください。
rikkachan

2018/08/25 18:05

夜遅くまで本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問