2009-10-06 11 views
11

Tôi muốn triển khai chế độ xem tương tự như chế độ xem chi tiết của ứng dụng Danh bạ riêng của Apple, nơi hiển thị tên, số điện thoại, ghi chú, v.v.Chi tiết của ứng dụng Danh bạ iPhone Xem chi tiết

Bạn có thể phân tích cách toàn bộ chế độ xem được thực hiện không? Chế độ xem đó có được thực hiện với UITableView hoặc UIScrollView không?

Trả lời

11

Màn hình chi tiết liên hệ thực sự khá đơn giản để bắt chước.

Bắt đầu với UITableView và cung cấp UITableViewDataSource và UITableViewDelegate. Bạn sẽ cần cung cấp các phần cho tất cả dữ liệu bạn muốn trình bày. Điều này có nghĩa là 1 cho tiêu đề tùy chỉnh, 1 cho chân trang tùy chỉnh (nút/hành động) và khoảng 6 phần hoặc hơn cho dữ liệu (một phần cho số điện thoại, một phần cho địa chỉ email, v.v.)

Bên trong mỗi phần, một số hàng cần được cung cấp từ nguồn dữ liệu của bạn để cho biết có bao nhiêu dữ liệu cho phần đó. Đối với mỗi hàng, một UITableViewCell có thể được sử dụng để hiển thị dữ liệu liên lạc thực tế (giá trị số fax/nhãn fax, vv). Bạn có thể được ưa thích nếu bạn thích, nhưng có vẻ không cần thiết. Đối với những thứ như nhạc chuông, bạn cần phải chỉ định chỉ báo tiết lộ.

Đối với tiêu đề, bạn sẽ cần một UIImageView và một UILabel, cho chân trang bạn sẽ cần một vài UIButtons. Bạn có thể tạo một đứa con của UITableViewCell trong InterfaceBuilder với những khung nhìn bên trong nó và nối nó lên như bất cứ thứ gì khác. Bạn có thể sử dụng NSBundle để tải chế độ xem từ các xib khác chưa được tải.

Cách khác là tạo động các tiện ích con giao diện người dùng khi chạy không có xib. Tất cả phụ thuộc vào những gì bạn muốn quản lý (mã hoặc xibs), với tôi nó có vẻ như về cùng một lượng nỗ lực một trong hai cách. Tôi khuyên bạn nên đọc qua số table view programming guide nếu bạn chưa đọc.

0

Bạn có thể sử dụng F-Script để khám phá điều này. Đây là một số screenshot từ trình duyệt F-Script khi duyệt Sổ Địa chỉ. Về cơ bản, có vẻ như rất nhiều lượt xem tùy chỉnh mà tất cả đều được kế thừa từ NSView.

Để làm điều này bản thân:

  1. Tải F-Script từ liên kết ở trên
  2. Thực hiện theo các hướng dẫn trong extras/F-Script Anywhere thư mục để gắn vào Address Book
  3. Chọn F-Script -> Mở trình duyệt đối tượng từ trình đơn Sổ địa chỉ
  4. Nhấp vào Chọn Chế độ xem
  5. Làm nổi bật chế độ xem sổ địa chỉ mà bạn muốn khám phá và nhấp vào đó.
  6. Điều hướng xung quanh nội dung trái tim của bạn.
+0

Liệu F-Script có hoạt động cho ứng dụng iPhone không? – Boon

+0

Hrm. Mặc dù phiên bản iPhone Simulator của MobileAddressBook là một tệp thực thi động, việc tải gói FScript trong gdb dường như không hoạt động. – nall

1

Thực hiện của tôi sử dụng UITableView với tiêu đề tùy chỉnh (cho "Thêm ảnh" và chỉnh sửa tên tương đương) và chân trang tùy chỉnh (sử dụng UISegmentedControl hack cho một nút lớn) cho tương đương "Xóa".

3

Hoặc bạn có thể sử dụng ABPersonViewController riêng của Apple:

Thuộc tính allowsEditing xác định xem người dùng có thể chỉnh sửa thông tin của người đó.

0

Chỉ cần để cho bạn thấy cách này, bạn có thể phân lớp UITableViewController cho mục đích đó và sau đó để thực hiện chế độ Chỉnh sửa tương tự như hệ ứng dụng bạn sẽ:

  1. Thêm một tài sản để lưu trữ một tham chiếu đến Nút hủy.

    var cancelButton: UIBarButtonItem! 
    
  2. Trong viewDidLoad(), thêm nút chỉnh sửa để thanh điều hướng như là một mục đúng và chuẩn bị nút Cancel để sau đó thêm nó như là một mục bên trái.

    self.navigationItem.rightBarButtonItem = self.editButtonItem() 
    self.cancelButton = UIBarButtonItem(title: "Cancel", style: .Plain, target: self, action: "cancelPressed:") 
    
  3. Override setEditing (_: hoạt hình :) phương pháp để thiết lập các tế bào của bạn cho chế độ Edit/Xem trước và hiện/ẩn một nút Cancel trên thanh điều hướng, dựa trên lá cờ chỉnh sửa.

    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. Override UITableViewDelegate của tableView (_: editingStyleForRowAtIndexPath :) và tableView (_: shouldIndentWhileEditingRowAtIndexPath :) phương pháp để cấu hình phong cách dòng và thụt đầu dòng khi ở chế độ Edit.

  5. Thực hiện hủy Phương thức nén để thoát khỏi chế độ Chỉnh sửa khi Hủy được nhấn.

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

Tôi biết câu hỏi là khá cũ, nhưng ai đó có thể tìm thấy nó hữu ích.