kobasaです(´ω`*)
Kindleのアプリの表紙画面を作っています。
今回はボタンの記述について勉強していました。
ストーリーボードから線を引っ張ってくるActionの記述とは少し違いますね。
コードでのボタン設定
メソッドに引数を渡して、画像を使用したボタンを作成する。.addTarget
以降はボタンがタップされたときの処理を呼び出している。
setUpImageButton("chat", x: view.frame.size.width- 50)
.addTarget(self, action: #selector(chatAction), for: .touchDown)
「画像名」と「x方向の位置」を渡す。
今更ですが使い回すけどモノによって変更したい部分だけを引数に指定するんですよね。
画像を使用したボタンを作成するメソッド。
返り値にUIButton
を指定するので呼び出し側で.addTarget
の処理が可能。
func setUpImageButton(_name: String, x: CGFloat) -> UIButton{
let button = UIButton(type: .system)
button.setImage(UIImage(named: name), for: .normal)
button.frame.size= CGSize(width: 30, height: 30)
button.tintColor= .white
button.frame.origin= CGPoint(x: x, y: 25)
view.addSubview(button)
return button
}
UIButton(type: .system)
でタップで光るなどボタンとしての機能を持たせている。.setImage(UIImage(named: name))
で引数の名前の画像をセットしている。 for: .normal
は通常時の画像という意味。.tintColor= .white
で画像の色を変更。単色の画像ならこの記述のみで変更できる?
ボタンがタップされたときの処理
@objc func chatAction() {
print("タップchat")
}
処理はまだ仮置き。なんかobjcって慣れないんですよね。objectまで打っちゃう。
コメント