2017-11-14 5 views
0

I Swift 4には、UIButtonという名前のColorとStringを受け取るボタンを作成する関数があります。この機能にハイライトを追加したい、またはのスタイルをタップしたいのですが、どうすればよいかわかりません。UIButton関数add Tap Style

機能:

func homeBtn(button: UIButton, color: UIColor, title: String){ 
    button.setTitle(title, for: .normal) 
    button.setTitleColor(color, for: .normal) 
    button.titleLabel?.font = UIFont(name: "Raleway-Medium", size: 24) 
    button.titleLabel?.lineBreakMode = .byWordWrapping 
    button.titleLabel?.textAlignment = .center 
    button.titleEdgeInsets = UIEdgeInsetsMake(20,20,20,20) 
    button.layer.borderColor = color.cgColor 
    button.layer.borderWidth = 2 
    button.layer.cornerRadius = button.frame.width/2 
    button.layer.backgroundColor = whiteColor.cgColor 
} 

ボタンは円形であり、アウトラインとして使用さUIColorと中央の中心列を有します。他の人が同じUIColorを使用してボタンを埋めるためにタップスタイルを追加する方法を教えてもらえますか?

答えて

1

タイトルカラーはイベントを追加することなく簡単に行うことができます。あなたは以下のイベントを定義する必要があり、背景色については

button.setTitleColor(.white, for: .highlighted) 
button.setTitleColor(.black, for: .normal) 

button.addTarget(self, action: #selector(touchDown(button:)), for: .touchDown) 
    button.addTarget(self, action: #selector(touchUpInside(button:)), for: .touchUpInside) 

関数を定義します - あなたにも、追加のタッチタイプを参照することができます - 作品UIControlEvents

@objc func touchDown(button: UIButton) { 
    guard let borderColor = button.layer.borderColor else { 
     return 
    } 
    button.backgroundColor = UIColor(cgColor: borderColor) 
} 

@objc func touchUpInside(button: UIButton) { 
    // Set backgroundColor for normal state... 
} 
+1

おかげでバディを見ます素晴らしい、本当に感謝! –

関連する問題