未分類

systemImageを使ってボタンをカスタマイズする

投稿日:

標準で用意されているsystemImageを使って、以下のような追加ボタンを作る。

StoryBoardでImageに「plus」を設定して、テキストは消す。

systemImageのサイズ、色はコードで設定する。

以下の3行で、ボタンいっぱいに画像を表示させることができる。

button.imageView?.contentMode = .scaleAspectFit
button.contentHorizontalAlignment = .fill
button.contentVerticalAlignment = .fill

大きすぎる場合は、.imageEdgeInsetsでマージンを調整できる。

button.imageEdgeInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10);

すべてのコード

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var button: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        //角丸
        button.layer.cornerRadius = 20
        
        //画像の色
        button.imageView?.tintColor = .white
        
        //ボタンいっぱいに画像を表示する
        button.imageView?.contentMode = .scaleAspectFit
        button.contentHorizontalAlignment = .fill
        button.contentVerticalAlignment = .fill
        
        //画像にマージンを追加する
        button.imageEdgeInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10);

    }
}

完成

参考:【swift・iOS】UIボタン(Button)の装飾の仕方。ボーダー・角丸・背景色など【Xcode】

-未分類

執筆者:

関連記事

no image

xcode関連の不要なデータを消して容量を増やす

PremireProで書き出しができない時は、容量不足が原因の可能性あり。 xcodeが容量取りすぎているので、以下の通りにファイルなどを削除したら無事レンダリングできた。 参考:不要なXcodeのフ …

no image

パーツをコードで配置する方法

パーツはStoryBoardで置く以外に、コードからも配置できる。 ImageViewをコードから配置してみる。 1.インスタンスを生成する //インスタンス生成 var imageView = UI …

no image

viewWillAppearについて

super.viewWillAppear(animated)は自分で書く必要あり。 override func viewWillAppear(_ animated: Bool) { super.vie …

ライトと影をつける

平面とテキストとポイントライトとカメラを用意。平面とテキストの3Dレイヤーにチェックをいれておく。(ライトが影響するのは3Dレイヤーのみ) ライトの位置を動かすことで、影も動いていく。 ポイントライト …

no image

UIColorをRGBで指定する

label.textColor = UIColor(displayP3Red: 255/255, green: 126/255, blue: 121/255, alpha: 1) 参考:https:/ …