0

我想要一个顶视图(UIView 的子类),它使用

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
...

。H

@interface XView : UIView<UITableViewDataSource, UITableViewDelegate>

@property (nonatomic, strong) UITableView * tableView;

@end

这很好用,如果视图是空的,但是一旦我插入(addSubview)让我们说一个 UITableView

- (id)initWithFrame:(CGRect)frame 
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code

        self.tableView = [[UITableView alloc] initWithFrame:self.frame];

        self.tableView.delegate = self;
        self.tableView.dataSource = self;

        [self addSubview:self.tableView];

    }
    return self;
}

比 XView 里面的触摸方法没有被触发

4

1 回答 1

0

你要么需要继承你的 UITableView 或者使用 UITapGestureRecognizer 来解决这个问题。我个人会使用 UITapGestureRecognizer。

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapCode:)];
[self.tableView addGestureRecognizer:tap];

然后你可以在这里处理你的水龙头:

- (void)tapCode:(UITapGestureRecognizer *)recognizer
{
    // code goes here
}

如果你继承 UITableView,你可以把你的 touchesBegan:withEvent 放在那里。

于 2013-04-25T17:45:08.610 回答