如何正确检测我的UIView中的触摸?

时间:2010-02-23 10:59:54

标签: iphone cocoa-touch uiview uiviewcontroller

我遇到了问题。我有一个UIView,看起来像这样:alt text http://img193.imageshack.us/img193/6641/img0157y.png

在该视图控制器中,我实现了“touchesBegan:withEvent:”方法,但是当我触摸视图底部的栏时触发该方法,当我触摸桌子时没有任何反应。

如何更改此行为以便能够检测表中发生的触摸?

这是基本上声明UIViewController:

的代码
#import <Foundation/Foundation.h>
#import <QuartzCore/QuartzCore.h>

@interface TripSearchDetailViewController : UIViewController 
{
    //Parent of this sub-view.
    UIViewController    *parentController;

    //GUI elements
    UITableView         *tableView;
    UIButton            *backButton;
}

//Button actions
- (IBAction) goBack:(id) sender;
- (IBAction) showDatePicker:(id) sender;

//Class Methods.
- (void) presentDatePicker;


@property (nonatomic, retain) UIViewController      *parentController;
@property (nonatomic, retain) IBOutlet UITableView  *tableView;
@property (nonatomic, retain) IBOutlet UIButton     *backButton;

@end

2 个答案:

答案 0 :(得分:2)

看起来你有一个UITableViewController,而不是UIViewController。您的表视图在进入视图控制器之前会拦截和处理触摸。您需要继承UITableView,覆盖它的-touchesBegan:withEvent:方法,然后创建一个标准的UIViewController,将您的新子类添加到视图层次结构中。

答案 1 :(得分:0)

我认为在TripSearchDetailViewController中实现hitTest:withEvent:方法可能会有所帮助。如果您在此方法中返回true,则应识别您的触摸。 另见:http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/EventHandling/EventHandling.html