2015-01-04 14 views
9

タップすると、ボタンのテキストを取得してフォントの色を赤に変更しようとしています。私は数か月前から同様の投稿を見て、そのコードを使用するとXcode 6.1.1でビルドエラーが発生します。タップしたときにボタンのテキストの色を変更する

class ViewController: UIViewController { 

    @IBAction func firstButton(sender: UIButton) { 
     firstButton.titleLabel.textColor = UIColor.redColor() 
    } 
} 

私が取得エラーコードは次のとおりです:ここで私がしようとしているコードです

'(UIButton)は - >()' 'titleLabel'

という名前のメンバを持っていません。

私は私が客観C.

答えて

8

この機能のテキストの色を変更しようとしていますが、意味がありません。 titleLabelにアクセスするためのボタンへの参照を取得しようとしている場合は、代わりにsenderパラメータにアクセスする必要があります。さらに、rakeshbsが指摘するように、titleLabelはUIButtonのオプションのプロパティです。あなたは、エラーメッセージを打破する場合

class ViewController: UIViewController { 

    @IBAction func firstButton(sender: UIButton) { 
     sender.titleLabel?.textColor = UIColor.redColor() 
    } 
} 

、あなたは、これは明らかに問題であることを認識します。

「(UIButton)は - >()」という名前のメンバーを持っていない「titleLabel」あなたがオブジェクトにtitleLabelという名前のメンバー(またはプロパティ)にアクセスしようとしていると述べている

(UIButton) ->()と入力します。これは、ボタンを入力として返し、何も返さない関数を意味します。鉱山作業のこの質問をするために必要な正確なSWIFTコードに興味がある人のために

+0

これは問題でした。私は送信者にアクセスしていない、私はその名前でボタンにアクセスしようとしていた。どうもありがとうございました。 –

2

UIButton.titlelabelはオプションのプロパティです学ぼうとして忍耐を失った後の恵みを保存するようスウィフト見るようにすべてのヘルプははるかに高く評価されます。プロパティを変更するには、オプションの連鎖を使用する必要があります。

firstButton.titleLabel?.backgroundColor = UIColor.redColor() 

詳しくは、迅速なオプションについての説明をお読みください。 http://www.appcoda.com/beginners-guide-optionals-swift/

14

は、ここにある:

class ViewController: UIViewController { 

@IBAction func firstButton(sender: UIButton) { 

    sender.setTitleColor(UIColor.redColor(), forState: UIControlState.Normal) 

} 
5

これはスウィフト3のために動作します:

yourButton.setTitleColor (UIColor.blue、for:.normal)

関連する問題