[解決済み] Storyboardで外部xibファイルからビューを読み込む
2022-04-28 13:29:50
質問
ストーリーボードで、複数のビューコントローラーを通してビューを使用したい。そこで、外部xibでビューを設計し、変更が各ビューコントローラに反映されるようにしようと考えました。しかし、ストーリーボードで外部xibからビューを読み込むことはどのようにできるのでしょうか、また、それは可能なのでしょうか?また、そのようなことは可能なのでしょうか?
解決方法は?
私の完全な例は次のとおりです。 こちら が、以下に概要を説明します。
レイアウト
プロジェクトに、同じ名前の .swift と .xib ファイルをそれぞれ追加します。.xibファイルには、カスタムのビューレイアウト(できれば自動レイアウト制約を使用)が含まれています。
swiftファイルをxibファイルのオーナーにする。
.swift ファイルに以下のコードを追加し、.xib ファイルからアウトレットとアクションをフックします。
import UIKit
class ResuableCustomView: UIView {
let nibName = "ReusableCustomView"
var contentView: UIView?
@IBOutlet weak var label: UILabel!
@IBAction func buttonTap(_ sender: UIButton) {
label.text = "Hi"
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
guard let view = loadViewFromNib() else { return }
view.frame = self.bounds
self.addSubview(view)
contentView = view
}
func loadViewFromNib() -> UIView? {
let bundle = Bundle(for: type(of: self))
let nib = UINib(nibName: nibName, bundle: bundle)
return nib.instantiate(withOwner: self, options: nil).first as? UIView
}
}
使用する
カスタムビューは、ストーリーボードの任意の場所で使用できます。ストーリーボードに
UIView
で、クラス名をカスタムクラス名に設定します。
関連
-
[解決済み] 文字列の長さを取得する
-
[解決済み] Xcode 12、iOS Simulator用にビルドしても、iOS用にビルドされたオブジェクトファイルでは、アーキテクチャ「arm64」用にリンクされます。
-
[解決済み] UITableViewCell、スワイプ時に削除ボタンを表示させる
-
[解決済み] Swiftを使用してアプリのバージョンとビルド番号を取得するにはどうすればよいですか?
-
[解決済み] UITextFieldの最大文字数を設定します。
-
[解決済み] コア・データ エンティティの全インスタンスを削除する最短の方法
-
[解決済み] iOS 11、Apple TV 4Kなどを搭載したXcode 9でワイヤレスデバッグを行う方法とは?
-
[解決済み] [Solved] XibファイルからカスタムUITableViewCellをロードする方法は?
-
[解決済み] クラスからプログラム的にストーリーボードを読み込むにはどうすればよいですか?
-
[解決済み] Xcode が未修正のストーリーボードと XIB ファイルを変更する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[エラー処理】iOSのエラー、アーキテクチャx86_64の未定義シンボルについて
-
XCode のコンパイル例外を解決する clang: error: linker command failed with exit code 1
-
[解決済み] iOS 13 のフルスクリーンでモーダルを表示する
-
[解決済み] Unwind segueは何に使うのか、どう使うのか?
-
[解決済み] UILabelで複数行のテキストを表示する
-
[解決済み] 16進カラーバリューの使用方法
-
[解決済み] Swiftの配列を文字列に変換するには?
-
[解決済み] Swift 3でディスパッチキューを作成する方法
-
[解決済み] ファイルはユニバーサル(3スライス)ですが、iOSの静的ライブラリのための(n)ARMv7-sスライスエラーが含まれていない、どうにかして回避するには?
-
[解決済み] Swiftで配列に要素を追加する