前回作成したカスタムダイアログに修正を入れて二段構えにする。
二段構え
二段構えとは、初期表示ではボタンのみ表示し、指示を受けるとラベルがせり上がってくることを指す。前回も取り上げた 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