2011-06-11 21 views
6

tôi đang cố gắng để thực hiện một TableView đó mỗi tế bào có một nút '+' giống như các ứng dụng iPod khi thêm bài hát vào danh sách phát.Add "Plus" nút cho AccessoryType TableView

Các cell.accesoryType chỉ có bốn giá trị

UITableViewCellAccessoryCheckmark 

UITableViewCellAccessoryDetailDisclosureButton 

UITableViewCellAccessoryDisclosureIndicator

None 

Làm thế nào điều này có thể được thực hiện? Làm tôi cần phải tạo ra một nút tùy chỉnh và thiết lập cell.accessoryView hoặc là có một cách khác để làm điều này?

Trả lời

0

Nếu bạn đang tạo một custom cell, sau đó đặt một button vào nó ở góc phải, giống như nơi accessory type xuất hiện và gán nó '+' hình ảnh của bạn để nút, do đó bạn cũng "nhìn thấy hình ảnh" và nhận được "sự kiện hành động nút".

Tham khảo this hướng dẫn cho uitableviewcells tùy chỉnh.

+5

Tìm thấy giải pháp UIButton * nút = [UIButton buttonWithType: UIButtonTypeContactAdd]; [nút addTarget: tự động: @selector (buttonTapped: sự kiện :) forControlEvents: UIControlEventTouchUpInside]; cell.accessoryView = button; và tạo quy trình xử lý sự kiện - (void) buttonTapped: (id) người gửi sự kiện: (id) event { } – teo

12

giải pháp Teo của hoạt động tuyệt vời, nhưng nó không được đăng như một câu trả lời, vì vậy tôi post lại nó:

UIButton *button = [UIButton buttonWithType:UIButtonTypeContactAdd]; 
[button addTarget:self action:@selector(addbuttonTapped) forControlEvents:UIControlEventTouchUpInside]; 
cell.accessoryView = button; 
+0

Và điều đó có nghĩa là bạn sẽ nhận được ưu đãi! – Saltymule

3

Một đơn giản biến thể của JosephH, cho trí nhớ.

Nếu bạn chỉ đơn giản là muốn có một nút trang trí "+" và tiếp tục sử dụng bản gốc didSelectRowAtIndexPath kích hoạt, sử dụng:

UIButton *button = [UIButton buttonWithType:UIButtonTypeContactAdd]; 
[button setUserInteractionEnabled:NO]; 
cell.accessoryView = button; 

Bằng cách vô hiệu hóa tương tác người dùng vào nút, nó sẽ tuyên truyền sự kiện gây áp lực lên các quan điểm cơ bản: các ô.

Các vấn đề liên quan