下からせり上がってくる非モーダルなカスタムダイアログを作る (2)二段構え

2010年7月23日金曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加

[前回] Cocoaの日々: 下からせり上がってくる非モーダルなカスタムダイアログを作る

前回作成したカスタムダイアログに修正を入れて二段構えにする。

二段構え


二段構えとは、初期表示ではボタンのみ表示し、指示を受けるとラベルがせり上がってくることを指す。前回も取り上げた Pastebot がこのインターフェイスを採用している。

最初はこう。


表で行選択すると選択件数を表示するラベルが出てくる。

前回のコードに手を入れてこれを実現する。

実装


まず Interface Buidler で上部に配置していた Label を下へ隠す。
こうなる。
次に CustomDialogViewController に制御用のメソッドを追加する。このメソッドではラベルのアニメーション制御と共にボタンの有効向制御も行う。
- (void)setEnabled:(BOOL)enabled
{
 if (enabled_ == enabled) {
  return;
 }

 enabled_ = enabled;
 self.button.enabled = enabled;
 
 CGRect frame = self.label.frame;

 if (enabled) {
  frame.origin.y -= frame.size.height;
 } else {
  frame.origin.y += frame.size.height;
 }
 [UIView animateWithDuration:ANIMATION_DURATION
      animations:^{self.label.frame = frame;}];
}
やっていることは簡単で -[UIView animateWithDuration:animations:] を使い、ラベルの Y座標を変更しているだけ。Blocksが使えるようになったのでコードが非常にすっきりしている。


実行結果


最初はこう。

ダイアログを開き

ラベルを開く


ソースコード


GitHubからどうぞ
DialogSample at 2010-07-23b from xcatsan's iOS-Sample-Code - GitHub

Responses

Leave a Response

人気の投稿(過去 30日間)