tôi có tableview với bảng tùy chỉnh cell.the được chia thành nhiều phần và rows.i có một nút tùy chỉnh trên tế bào. bây giờ tôi muốn nhận được số phần và số hàng khi tôi bấm vào nút đó.? bất kỳ ý tưởng về vấn đề nàynhận số phần và số hàng trên nhấp vào nút tùy chỉnh của ô?
Trả lời
Bạn cần triển khai phương thức xử lý sự kiện UIControl trên bộ điều khiển chế độ xem của mình và đặt điều đó làm bộ điều khiển cho tất cả các nút của bạn. ví dụ: trong chức năng -tableView:cellForRowAtIndexPath:
của bạn, bạn sẽ làm điều gì đó như:
[theCell.button addTarget: self
action: @selector(buttonPressed:withEvent:)
forControlEvents: UIControlEventTouchUpInside];
Sau đó xử lý sự kiện của bạn sẽ trông như thế này:
- (void) buttonPressed: (id) sender withEvent: (UIEvent *) event
{
UITouch * touch = [[event touches] anyObject];
CGPoint location = [touch locationInView: self.tableView];
NSIndexPath * indexPath = [self.tableView indexPathForRowAtPoint: location];
/* indexPath contains the index of the row containing the button */
/* do whatever it is you need to do with the row data now */
}
Phương pháp sau đây được gọi là khi bạn chọn một ô trong tableView của bạn:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
để truy cập số phần: int section = indexPath.section;
để truy cập số liên tiếp (trong vòng đúng phần): int row = indexPath.row;
Đó là không được gọi khi người dùng chạm vào một nút trên một hàng; nó chỉ được gọi nếu họ chạm vào chính nền hàng. –
UITableView can convert a CGPoint coordinate into an indexPath:
-(NSIndexPath *)indexPathForRowAtPoint:(CGPoint)point
Một vài suy nghĩ:
Bạn có thể lặp qua hệ thống phân cấp SuperView của nút cho đến khi bạn tìm thấy một UITableViewCell, sau đó gọi - (NSIndexPath *) indexPathForCell: (UITableViewCell *) tế bào trên UITableView.
- (void)buttonClicked:(id)sender {
UIView *button = sender;
for (UIView *parent = [button superview]; parent != nil; parent = [parent superview]) {
if ([parent isKindOfClass: [UITableViewCell class]]) {
UITableViewCell *cell = (UITableViewCell *) parent;
NSIndexPath *path = [self.tableView indexPathForCell: cell];
// now use the index path
break; // for
}
}
}
Bạn có thể luân phiên sử dụng thẻ của nút để lưu trữ chỉ mục tham chiếu hàng. Điều này chỉ giữ một số nguyên duy nhất, do đó, nó có ý nghĩa nhất khi bạn có một phần duy nhất hoặc khi bạn đang quản lý các hàng của mình dưới dạng danh sách phẳng.
Bạn có thể luân phiên phân lớp UITableViewCell để đóng gói nút. UITableViewCell của bạn có thể đáp ứng với các sự kiện nút và phát lại một sự kiện cho đại biểu của riêng mình, đi qua tự. Người đại diện sự kiện sau đó có thể gọi - (NSIndexPath *) indexPathForCell: (UITableViewCell *) ô trên UITableView để có được đường dẫn chỉ mục.
Add dụ biến của UITableViewCell subclassTo của bạn có thể lưu trữ các đường chỉ số của tế bào:
NSIndexPath *myIndexPath;
Khi bạn tạo các tế bào trong:
cellForIndexPath:
vượt qua trong indexPath đến vừa được tạo ra/tái chế tế bào.
Bây giờ, khi bạn nhấn nút, chỉ cần đọc đường dẫn chỉ mục từ ivar của ô của bạn.
- 1. Tăng số bằng cách nhấp vào nút
- 2. Nhận số hàng của ô bằng cách sử dụng EPPlus
- 3. Nhận số hàng trong p: dataTable của phần tử động
- 4. jqGrid - Chèn HTML tùy chỉnh vào ô
- 5. Nút bật tắt WPF có mẫu tùy chỉnh không chấp nhận nhấp vào đúng khu vực
- 6. Cách lấy đường dẫn chỉ mục của ô trong UITableView trong khi nhấp vào nút Phụ kiện tùy chỉnh?
- 7. Nhận nội dung của một ô được cung cấp số hàng và cột
- 8. Nhận tổng số nút và nút đếm
- 9. Số tiền tùy chỉnh Paypal cho nút "Đóng góp ngay"
- 10. UISearchDisplayController và ô tùy chỉnh
- 11. Truyền thông số vào mẫu tùy chỉnh
- 12. nhấp vào nút() trên nút, tôi có thể chuyển bất kỳ thông số nào không?
- 13. Làm thế nào để biết indexPath/hàng trên nút bấm của ô Tableview trong một UITableView?
- 14. Làm thế nào để vô hiệu hóa chỉnh sửa cho một số ô trong chỉnh sửa hàng của JQGrid?
- 15. Nút tùy chỉnh Xinha
- 16. Cách theo dõi số lần nhấp vào nút Tweet?
- 17. Hình dạng tùy chỉnh thực của nút
- 18. Cách thêm điều khiển tùy chỉnh trên TOP của một số khác
- 19. Tùy chỉnh định dạng ô PHPExcel chỉ hiển thị sau khi nhấp đúp vào
- 20. Nút home tùy chỉnh trên ActionBar
- 21. Sự kiện nhấp vào nút trên Android
- 22. Tạo hai nút tùy chỉnh
- 23. Tooltip vào nút tùy chỉnh trong Highcharts
- 24. Tính phần trăm của tổng số hàng với plyr
- 25. Nhấp vào bất kỳ nơi nào trên hàng GridView để vào chế độ chỉnh sửa
- 26. Cách tạo tùy chỉnh "xác nhận" & tạm dừng js cho đến khi người dùng nhấp vào nút?
- 27. Tạo các ô tùy chỉnh trong hàng tĩnh UITableView
- 28. Viết phần tùy chỉnh vào app.config
- 29. Thẻ mẫu tùy chỉnh Django chấp nhận tham số boolean
- 30. tạo nút xóa tùy chỉnh cho uitableview
chỉnh sửa nhẹ ... [chạm sự kiện] phải là [event allTouches] – dizy
tuyệt vời! đây chính xác là những gì tôi đang tìm kiếm ... cảm ơn .. – mshsayem