iPhoneでポップアップをカスタマイズしたい!
iPhoneでいわゆる普通のポップアップを表示するならUIAlertViewを使えば良いのですが、ポップアップしたviewにいろいろしようと思うとちょっと大変。
そこで見つけたのがMJPopupViewControllerというもの。
martinjuhasz/MJPopupViewController · GitHub
使い方は簡単だったものの、なんか忘れそうなのでメモ。
1:MJPopupViewControllerを追加
zipでダウンロードしたら、Sourceフォルダの中にある4ファイルをプロジェクトに追加します。
- MJPopupBackgroundView.h
- MJPopupBackgroundView.m
- UIViewController+MJPopupViewController.h
- UIViewController+MJPopupViewController.m
CocoaPodsで入れるならここか。
MJPopupViewController for iOS - Cocoa Controls
2:ポップアップ用のクラスを作る
MJPopupViewControllerは通常のUIViewを表示するので、UIViewControllerのサブクラスとして作成します。
3:ポップアップ用のxibを作る
新規xibを作ってここにViewを配置します。縦横サイズがデフォルトでは画面いっぱいになりますが、変更するにはViewを選んでここ!
そして忘れないようにFile's Ownerを選択してCustomClassを設定します。
さらに、File's Ownerのviewと配置したViewのOutletを繋ぐのを忘れずに。
4:呼び出しもとで準備
MJPopupViewControllerと1で作ったクラスをインポート。
#import "UIViewController+MJPopupViewController.h"
#import "PopupViewController.h"
5:ポップアップを実行!
1で作ったクラスのインスタンスを用意して、MJPopupViewControllerを使って表示します。
PopupViewController *popUpView = [[PopupViewController alloc]initWithNibName:@"(Xibの名前)" bundle:nil];
[self presentPopupViewController:popUpView animationType:MJPopupViewAnimationFade];
animationTypeのところは、いろいろな指定があるのでサンプルを見ながら使い分けましょう。
このままであれば、ポップアップ以外の場所をタップすることで閉じます。ポップアップ上に配置したボタンを使って閉じる場合は、1のクラスにdelegateを付けて、呼び出しもとがメソッドを実装して
[self dismissPopupViewControllerWithanimationType:MJPopupViewAnimationFade];
などとしてあげることで消すことができました。
現場で通用する力を身につける iPhoneアプリ開発の教科書 【iOS 7&Xcode 5対応】
- 作者: 森巧尚,まつむらまきお
- 出版社/メーカー: マイナビ
- 発売日: 2014/01/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る