2009-10-06 2 views

答えて

11

連絡先の詳細画面は、実際には模倣するのが非常に簡単です。

UITableViewで始まり、UITableViewDataSourceおよびUITableViewDelegateを提供します。あなたは提示したいすべてのデータのセクションを提供する必要があります。これは、カスタムヘッダーの場合は1、カスタムフッター(ボタン/アクション)の場合は1、データの場合は約6程度のセクション(電話番号のセクションと電子メールアドレスのセクション)は

各セクションの内部には、そのセクションのデータ量を示すために、データソースから複数の行を提供する必要があります。各行について、UITableViewCellを使用して実際の連絡先データ(FAXラベル/ FAX番号の値など)を表示できます。あなたは好きなら空想を得ることができますが、必要がないようです。着信音のようなものについては、公開インジケータを指定する必要があります。

ヘッダーにはUIImageViewとUILabelが必要ですが、フッターにはいくつかのUIButtonが必要です。これらのビューを内部に持つInterfaceBuilderでUITableViewCellの子を作成し、他のもののように配線することができます。 NSBundleを使用して、まだロードされていない他のxibからビューをロードすることができます。

代わりに、実行時にxibを使用しないでUIウィジェットを動的に生成することもできます。それはすべてあなたがむしろ何を管理するか(コードまたはxibs)に依存します。 table view programming guideをまだ読んでいない場合は、読んでおくことを強くお勧めします。

0

これを調べるにはF-Scriptを使用できます。 F-Scriptブラウザのアドレス帳を参照しているときはscreenshotです。基本的には、NSViewからすべて継承したカスタムビューのように見えます。これを自分で行うには

  1. ダウンロードF-スクリプトを
  2. 上記のリンクからは、ブック
  3. に対処するために取り付けるためのエクストラ/ F-スクリプト内の命令Anywhereディレクトリは、F-スクリプトを選択してくださいフォロー - >アドレス帳メニューからオブジェクトブラウザを開く
  4. 検索するアドレス帳ビューを強調表示してクリックします。
  5. あなたの心のコンテンツに移動します。
+0

F-ScriptはiPhoneアプリケーションで動作しますか? – Boon

+0

Hrm。 MobileAddressBookのiPhone Simulatorバージョンが動的実行ファイルであるにもかかわらず、gdbにFScriptバンドルを読み込むことは機能していないようです。 – nall

1

私の実装では、カスタムヘッダー(「写真の追加」と同等の名前の編集用)とカスタムフッター(大きなボタン用のUISegmentedControlハックを使用)を使用して、「削除」同等物を作成します。

3

それとも、Appleの独自のABPersonViewControllerを使用することができます。

allowsEditingプロパティは、ユーザーが個人の情報を編集できるかどうかを指定します。

0

ただ、あなたの道を示すために、あなたはその目的のためのUITableViewControllerのサブクラスを作成することができ、その後、連絡先に似て編集モードを実装するためにあなたが希望APP:

  1. への参照を格納するプロパティを追加します。キャンセルボタン。 viewDidLoadで

    var cancelButton: UIBarButtonItem! 
    
  2. ()、右の項目としてナビゲーションバーに編集ボタンを追加し、後左項目として追加するキャンセルボタンを準備します。

    self.navigationItem.rightBarButtonItem = self.editButtonItem() 
    self.cancelButton = UIBarButtonItem(title: "Cancel", style: .Plain, target: self, action: "cancelPressed:") 
    
  3. オーバーライド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) 
        } 
    } 
    
  4. 上書きUITableViewDelegateさんのtableView(_:editingStyleForRowAtIndexPath :)とのtableView(_:編集モードで行のスタイルやインデントを設定するにはshouldIndentWhileEditingRowAtIndexPath :)方法。

  5. Cancelを押したときに編集モードを終了するにはcancelPressedメソッドを実装します。

    func cancelPressed(button: UIBarButtonItem) { 
        self.setEditing(false, animated: true) 
    } 
    

私は質問がかなり古いですけど、誰かがそれが役に立つかもしれません。

関連する問題