ひとりまとめ

もろもろのメモ

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を選んでここ!

f:id:g2_girichan:20140331175957p:plain

 

そして忘れないようにFile's Ownerを選択してCustomClassを設定します。

f:id:g2_girichan:20140331180652p:plain

 さらに、File's Ownerのviewと配置したViewのOutletを繋ぐのを忘れずに。

f:id:g2_girichan:20140401014706p:plain

 

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対応】

現場で通用する力を身につける iPhoneアプリ開発の教科書 【iOS 7&Xcode 5対応】