こんにちは!株式会社メモリアインクのふくしまです〜
この記事では、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
メソッドで作成したヘッダーのビューを親ビューに追加
表示確認
それではビルドして表示確認してみましょう〜
画像を含むカスタムヘッダーの実装方法
概要
この実装では、ヘッダー内にロゴや任意の画像を配置し、アプリのブランドアイデンティティを強化することを目指します。
前提
カスタムヘッダーに表示する画像をプロジェクトのファイルに入れておきましょう
画像のサイズに編集やタップを検知する方法については以下の記事で説明しているので興味があれば併せてご覧ください!
サンプルコード
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
メソッドで作成したイメージビューをの作成したカスタムヘッダービューに追加
表示確認
それではビルドして表示確認してみましょう〜
まとめ
いかがでしたか?
アプリケーションの顔とも言えるヘッダー部分は、ユーザーの第一印象を左右し、アプリのブランドイメージを強く印象づける要素となるでしょう。
この記事が、皆様の開発ライフの一助になれると幸いです!
この記事があなたのスキルアップに役立ったなら、次のキャリアステップを踏み出す絶好の機会かもしれません。エンジニアとしてのさらなる成長と挑戦を求めるなら、
未経験からIT・Webエンジニアを目指すなら【ユニゾンキャリア】
コメント