我懷疑OP仍然在等待一個答案,但對於未來搜索的好處:
你可以抓住觸摸事件在細胞內,行爲,那麼要麼放棄它,或者通過它的鏈條:
@interface MyCell : UITableViewCell
// ...
@end
@implementation MyCell
// ...
- (void) touchesBegan: (NSSet*) touches withEvent: (UIEvent*) event
{
UITouch* touch = [[event allTouches] anyObject];
CGPoint someLocation = [touch locationInView: someView];
CGPoint otherLocation = [touch locationInView: otherView];
if ([someView pointInside: someLocation: withEvent: event])
{
// The touch was inside someView. Do some stuff,
// but don't invoke tableView:didSelectRowAtIndexPath: on the delegate.
}
else if ([otherView pointInside: otherLocation: withEvent: event])
{
// The touch was inside otherView. Do other stuff.
// Send the touch on for processing, and tableView:didSelectRowAtIndexPath: handling.
[super touchesBegan: touches withEvent: event];
}
else
{
// Send the touch on for processing, and tableView:didSelectRowAtIndexPath: handling.
[super touchesBegan: touches withEvent: event];
}
}
@end