未分類

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

collectionViewで均等なマス目を作る

セル同士を0.5の線で区切りたいが、所々太くなってしまっている。 ボーダーを非表示にすると、わずかな隙間ができている。 セル同士の隙間を0にすることで、綺麗な0.5のボーダーにしたい。 //セルの大き …

no image

タップでsearchBarのキーボードを閉じる方法

navigationControllerを使っている場合、 override func touchesBegan(_ touches: Set, with event: UIEvent?) { vie …

no image

TextViewにPlaceholderを追加する簡単な方法

TextViewはTextFieldのようにPlaceholderを設定できないため、自分で実装する必要がある。 ここでは、TextViewの上にLabelを設置し、TextViewの入力判定を行い、 …

no image

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

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

no image

配列の作り方

配列の作り方 ・宣言する var abcdBox = [String]() ・宣言時に配列の要素を入れておく var abcdBox = [“a”,”b”,”c”,”d”] ・要素を1つだけ追加する …