【2024年4月】弊社では、基本リモートワークで一緒に成長してくださるメンバーを広く募集させていただいております。 詳細はこちら

【Swift】アプリにカスタムヘッダーを実装してテキストや画像を自由に配置するための完全ガイド

【Swift】アプリにカスタムヘッダーを実装してテキストや画像を自由に配置するための完全ガイド
ふくしま

こんにちは!株式会社メモリアインクのふくしまです〜

この記事では、iOSアプリでカスタムヘッダーを実装する方法を、実践的なサンプルコードを交えながら詳しく解説します。

この記事を読んで分かること…
・カスタムヘッダーの基本的な実装方法
・画像を含むカスタムヘッダーの実装方法

目次

カスタムヘッダーの基本的な実装方法

概要

ここでは、シンプルなテキストを含むカスタムヘッダーの実装方法を見ていきます。

サンプルコード

import UIKit

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.setupCustomHeader()
    }

    private func setupCustomHeader() {
        // ヘッダーのためのUIViewをインスタンス化
        let headerView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 120))
        // ヘッダーのバックグラウンドの色を指定
        headerView.backgroundColor = .systemOrange
        // ヘッダーのテキストラベルをインスタンス化
        let headerLabel = UILabel(frame: CGRect(x: 10, y: 80, width: headerView.frame.width - 40, height: 30))
        // テキストを設定
        headerLabel.text = "My Custom Header"
        // テキストの色を指定
        headerLabel.textColor = .white
        // テキストのフォントを指定
        headerLabel.font = UIFont.systemFont(ofSize: 18, weight: .medium)
        // 作成したテキストラベルをヘッダーのビューに追加
        headerView.addSubview(headerLabel)
        // 作成したヘッダーのビューを親ビューに追加
        self.view.addSubview(headerView)
    }
}

サンプルコードの説明

・10-27行目:カスタムヘッダーをセットアップするためのメソッドsetupCustomHeaderを定義
12行目CGRect でサイズを指定して、ヘッダーのためのUIViewをインスタンス化
14行目.backgroundColor プロパティにヘッダーのバックグラウンドの色を指定
16行目:ヘッダーのテキストラベルをインスタンス化
26行目.addSubview メソッドで作成したヘッダーのビューを親ビューに追加

表示確認

ふくしま

それではビルドして表示確認してみましょう〜

【Swift】アプリにカスタムヘッダーを実装してテキストや画像を自由に配置するための完全ガイド

画像を含むカスタムヘッダーの実装方法

概要

この実装では、ヘッダー内にロゴや任意の画像を配置し、アプリのブランドアイデンティティを強化することを目指します。

前提

カスタムヘッダーに表示する画像をプロジェクトのファイルに入れておきましょう
画像のサイズに編集やタップを検知する方法については以下の記事で説明しているので興味があれば併せてご覧ください!

サンプルコード

import UIKit

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.setupCustomHeader()
    }

    private func setupCustomHeader() {
        let headerView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 120))
        headerView.backgroundColor = .systemOrange
        
        // ヘッダー内に配置する画像ビューを作成
        let imageView = UIImageView(frame: CGRect(x: (self.view.frame.width - 100) / 2, y: 35, width: 100, height: 100))
        imageView.contentMode = .scaleAspectFit

        // 画像リソースを設定
        imageView.image = UIImage(named: "logo")

        headerView.addSubview(imageView)
        self.view.addSubview(headerView)
    }
}

サンプルコードの説明

基本的には、先ほどの実装と同様で、ラベルを入れていた部分をUIImageViewに変更していきます。
15行目:ヘッダー内で表示する画像UIImageViewをインスタンス化して、CGRect で画像を配置する位置を指定
16行目:画像ビューのコンテンツモードをscaleAspectFitに設定して、画像がアスペクト比を保持しつつビューに収まるようにします。
19行目:あらかじめプロジェクトファイル上に格納した画像リソースを設定
21行目:.addSubview メソッドで作成したイメージビューをの作成したカスタムヘッダービューに追加

表示確認

ふくしま

それではビルドして表示確認してみましょう〜

【Swift】アプリにカスタムヘッダーを実装してテキストや画像を自由に配置するための完全ガイド

まとめ

いかがでしたか?
アプリケーションの顔とも言えるヘッダー部分は、ユーザーの第一印象を左右し、アプリのブランドイメージを強く印象づける要素となるでしょう。
この記事が、皆様の開発ライフの一助になれると幸いです!

ふくしま

この記事があなたのスキルアップに役立ったなら、次のキャリアステップを踏み出す絶好の機会かもしれません。エンジニアとしてのさらなる成長と挑戦を求めるなら、
未経験からIT・Webエンジニアを目指すなら【ユニゾンキャリア】
をオススメします!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次