在子视图上设置框架会禁用交互

时间:2013-10-10 10:57:52

标签: iphone ios uicollectionview

我有一个UICollectionView,带有长按不同细胞的手势识别器。

我有一个带有两个按钮的子视图。

如果我的代码是

,则可以与子视图进行交互
- (IBAction)longPress:(UILongPressGestureRecognizer *)sender {


if (sender.state != UIGestureRecognizerStateBegan) {
    return;
}

    NSArray * views = [[NSBundle mainBundle] loadNibNamed:@"RoomEditIconOverlay" owner:self options:nil];
    UIViewController * editViewController = [views objectAtIndex:0];

    [self.view addSubview:editViewController.view];
    [editViewController.view becomeFirstResponder];//Required
}

但是,如果我在任何时候设置框架,那么我只是与父母视图进行交互。

- (IBAction)longPress:(UILongPressGestureRecognizer *)sender {


if (sender.state != UIGestureRecognizerStateBegan) {
    return;
}

    NSArray * views = [[NSBundle mainBundle] loadNibNamed:@"RoomEditIconOverlay" owner:self options:nil];
    UIViewController * editViewController = [views objectAtIndex:0];
    [editViewController.view setFrame:CGRectMake(0, self.view.frame.size.height -500, self.view.frame.size.width ,168)];

    [self.view addSubview:editViewController.view];
    [editViewController.view becomeFirstResponder];
}

我可以将它置于错误的位置(也没有动画)并且能够进行交互。或者让它处于正确的位置,没有互动。

1 个答案:

答案 0 :(得分:0)

问题是由于我设置的框架高度不够造成的。