Tôi cũng mất một thời gian để hiểu cách sử dụng các ô mẫu thử nghiệm. Nếu bạn muốn truy cập các phần tử giao diện người dùng bên trong một ô mẫu, bạn phải tạo một lớp con của UITableViewCell và gán nó cho ô mẫu trong Bộ dựng giao diện. Sau đó, bạn phải xác định các tính chất IBOutlet bằng tay ví dụ .:
@interface OptionSwitchCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UISwitch* switchControl;
@end
Sau đó, bạn có thể kết nối các thành phần giao diện thông qua điều khiển kéo từ yếu tố để định nghĩa tài sản trong giao diện giúp việc. Thay vào đó, IBActions có thể được xác định bên trong Trình điều khiển Chế độ xem sở hữu. Bạn có thể điều khiển-kéo từ một phần tử giao diện vào tập tin tiêu đề Bộ điều khiển Xem và tạo một hành động. Bên trong việc thực hiện hành động, bạn có thể muốn biết ô nào đang kích hoạt hành động. Tôi làm điều đó như thế này:
@implementation SomeTableViewController
- (IBAction)toggleActivity:(id)sender {
OptionSwitchCell* cell = (OptionSwitchCell *)[sender superview].superview;
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
...
}
@end
Một giải pháp cho việc tìm kiếm các ô tương ứng và đường dẫn chỉ mục (bởi jrturton):
- (IBAction)toggleActivity:(id)sender {
CGPoint hitPoint = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *hitIndex = [self.tableView indexPathForRowAtPoint:hitPoint];
OptionSwitchCell* cell = (OptionSwitchCell *)[self.tableView cellForRowAtIndexPath:hitIndex];
...
}
Mặc dù đây là một chút kỳ quặc, tôi đã không tìm thấy một giải pháp tốt hơn cho đến nay. Hy vọng rằng sẽ giúp.
Một vài phút trước, tôi tìm thấy video này (và phần thứ hai của nó): http://youtu.be/0AsChJk422c nó là nhiều hơn hoặc ít hơn những gì bạn giải thích nhưng anh/cô ấy sử dụng một đại biểu. Nguyên tắc tương tự, nhưng có vẻ sạch hơn một chút. Cảm ơn câu trả lời của bạn ! – Marcal
Nó thực sự là một giải pháp sạch hơn. Cảm ơn con trỏ. Mặc dù hơi nhiều mã soạn sẵn cho tất cả các giao thức. – Sbhklr
Cách tốt hơn để tìm hàng điều khiển có thể tìm thấy trong câu trả lời của tôi ở đây: http://stackoverflow.com/questions/9274494/how-to-know-the-uitableview-row-number/9274863#9274863 – jrturton