2011-10-28 13 views
2

下の画像をご覧ください。この「ポップアップ」ビューはどのように作成されましたか?

この 'ポップアップ'ビューはどのように作成されましたか?フォントを使ってそのビューを完全に模倣したいとしたら、どうすればいいですか?

enter image description here

+3

これは、背景UIImageView、3つのUIButton、1つのUILabel、1つのUISwitchという複数のサブビューを持つカスタムビューです。 – beryllium

+1

これは単なるカスタムビューです!このよう :http://stackoverflow.com/questions/4769169/iphone-popup-menu-like-ipad-popover 行うのは簡単! – elp

答えて

4

あり、このためのSDK公開コンポーネントではありませんが、これは非常に簡単にビューの階層を使用して行うことができます。

のUIView - メインビューが。ベジェパスを使用して、ソースからの への突起を作成します。 レイヤーにボーダーとドロップシャドウを追加しました。

UIButton - 小さいフォント
UIButton - 大きなフォント
UIButton - 変更フォントの種類
UIButton - セピア色のコンテナ。
UILabel - 「セピア」テキスト UISwitch - ただ、アニメーションでビューを表示し、非表示

オンとオフセピア色を回します。また、デリゲートコールバックを作成して、ポップオーバーでイベントが発生したときにデリゲートに通知します。

// Delegate returns if the text can get smaller to enable/disable the button 
- (BOOL) didSelectSmallerFont:(CGFloat)fontSize; 
// Delegate returns if the text can get larger to enable/disable the button 
- (BOOL) didSelectLargerFont:(CGFloat)fontSize; 
- (void) didChangeFont:(UIFont*)font; 
- (void) didToggleSepia:(BOOL)enabled; 

+1

幸いですが、より現代的です(あなたがiOS 4.0+をターゲットにしていると仮定して)コールバックの代わりにブロックを使用する必要があります。 – kubi

+0

@kubi - これを読んでいる間、まさに私が考えていたこと...ありがとう! – joshim5

0

ピラミッド形状をポップアップを提示するためにクリックされたボタンに関連付けられていません。これはUIImageViewのポップアップビューのサブビュー、またはUIViewで描画される可能性がありますが、UIImageViewは簡単なソリューションになります。あなたは間違いなく、画面上の任意の点で、または任意の方向に、その矢印を指すようにポップアップビューをコーディングすることができます。私は、initFromPoint:というinitメソッドを使ってポップアップをインスタンス化し、ポップアップの起動に使用したボタンの中央値を渡します。ポップアップのviewDidLoadメソッドの中でポイントを適切にポイントに基づいて配置します。

関連する問題