名前、電話番号、メモなどと編集モードが表示されているアップル独自の連絡先アプリの詳細ビューと同様のビューを実装したいと思います。iPhoneはどのように連絡しているのですか?ビューの実装
ビュー全体の仕組みを解剖できますか?そのビューはUITableViewまたはUIScrollViewで行われますか?
名前、電話番号、メモなどと編集モードが表示されているアップル独自の連絡先アプリの詳細ビューと同様のビューを実装したいと思います。iPhoneはどのように連絡しているのですか?ビューの実装
ビュー全体の仕組みを解剖できますか?そのビューはUITableViewまたはUIScrollViewで行われますか?
連絡先の詳細画面は、実際には模倣するのが非常に簡単です。
UITableViewで始まり、UITableViewDataSourceおよびUITableViewDelegateを提供します。あなたは提示したいすべてのデータのセクションを提供する必要があります。これは、カスタムヘッダーの場合は1、カスタムフッター(ボタン/アクション)の場合は1、データの場合は約6程度のセクション(電話番号のセクションと電子メールアドレスのセクション)は
各セクションの内部には、そのセクションのデータ量を示すために、データソースから複数の行を提供する必要があります。各行について、UITableViewCellを使用して実際の連絡先データ(FAXラベル/ FAX番号の値など)を表示できます。あなたは好きなら空想を得ることができますが、必要がないようです。着信音のようなものについては、公開インジケータを指定する必要があります。
ヘッダーにはUIImageViewとUILabelが必要ですが、フッターにはいくつかのUIButtonが必要です。これらのビューを内部に持つInterfaceBuilderでUITableViewCellの子を作成し、他のもののように配線することができます。 NSBundleを使用して、まだロードされていない他のxibからビューをロードすることができます。
代わりに、実行時にxibを使用しないでUIウィジェットを動的に生成することもできます。それはすべてあなたがむしろ何を管理するか(コードまたはxibs)に依存します。 table view programming guideをまだ読んでいない場合は、読んでおくことを強くお勧めします。
これを調べるにはF-Scriptを使用できます。 F-Scriptブラウザのアドレス帳を参照しているときはscreenshotです。基本的には、NSViewからすべて継承したカスタムビューのように見えます。これを自分で行うには
:
私の実装では、カスタムヘッダー(「写真の追加」と同等の名前の編集用)とカスタムフッター(大きなボタン用のUISegmentedControlハックを使用)を使用して、「削除」同等物を作成します。
それとも、Appleの独自のABPersonViewControllerを使用することができます。
allowsEditingプロパティは、ユーザーが個人の情報を編集できるかどうかを指定します。
ただ、あなたの道を示すために、あなたはその目的のためのUITableViewControllerのサブクラスを作成することができ、その後、連絡先に似て編集モードを実装するためにあなたが希望APP:
への参照を格納するプロパティを追加します。キャンセルボタン。 viewDidLoadで
var cancelButton: UIBarButtonItem!
()、右の項目としてナビゲーションバーに編集ボタンを追加し、後左項目として追加するキャンセルボタンを準備します。
self.navigationItem.rightBarButtonItem = self.editButtonItem()
self.cancelButton = UIBarButtonItem(title: "Cancel", style: .Plain, target: self, action: "cancelPressed:")
オーバーライドsetEditing(_:アニメーション:)編集フラグに基づいて、ナビゲーションバーの[キャンセル]ボタンを非表示/編集/プレビューモードとショーのためにあなたの細胞をセットアップする方法。
override func setEditing(editing: Bool, animated: Bool) {
super.setEditing(editing, animated: true)
if editing {
// Set up cells and prepare for Edit mode here
self.navigationItem.setLeftBarButtonItem(self.cancelButton, animated: true)
} else {
// Set up cells and prepare for Preview mode here
self.navigationItem.setLeftBarButtonItem(nil, animated: true)
}
}
上書きUITableViewDelegateさんのtableView(_:editingStyleForRowAtIndexPath :)とのtableView(_:編集モードで行のスタイルやインデントを設定するにはshouldIndentWhileEditingRowAtIndexPath :)方法。
Cancelを押したときに編集モードを終了するにはcancelPressedメソッドを実装します。
func cancelPressed(button: UIBarButtonItem) {
self.setEditing(false, animated: true)
}
私は質問がかなり古いですけど、誰かがそれが役に立つかもしれません。
F-ScriptはiPhoneアプリケーションで動作しますか? – Boon
Hrm。 MobileAddressBookのiPhone Simulatorバージョンが動的実行ファイルであるにもかかわらず、gdbにFScriptバンドルを読み込むことは機能していないようです。 – nall