How to subclass UITableView?
I honestly don't know how to subclass a UITableView. I'm super confused and looking for whatever help I can get. How 开发者_如何学Pythondo I go about "subclassing" a UITableView? Reason I need to do it is because I need for the table to respond to touches on the background so that keyboards can be hidden. I've tried googling but couldn't find anything. Any help is extremely appreciated!
Most of the time you shouldn't need to subclass UITableView
, so see if you can avoid doing so first. If you absolutely have to, create a subclass that inherits from UITableView
and override the touch-related methods in the implementation:
// MyTableView.h
@interface MyTableView : UITableView {
}
@end
// MyTableView.m
@implementation MyTableView
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesMoved:touches withEvent:event];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesEnded:touches withEvent:event];
}
- (void)touchesCancelled:(NSSet*)touches withEvent:(UIEvent*)event {
[super touchesCancelled:touches withEvent:event];
}
@end
In your .h file declare it as a subclass:
@interface myViewController: UITableViewController
Then implement the UITableViewController delegate methods:
http://developer.apple.com/iphone/library/documentation/uikit/reference/UITableViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UITableViewDelegate
To detect touches on a cell write your logic in the tableView:didSelectRowAtIndexPath:
method: http://developer.apple.com/iphone/library/documentation/uikit/reference/UITableViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UITableViewDelegate/tableView:didSelectRowAtIndexPath:
精彩评论