0

我,

当识别出 longTapGesture 时,我尝试管理滚动视图内的 tableView 的外观。当 longTapGesture 结束时,这个 tableView 必须消失。我在两个“if”块中使用 setHidden 函数来显示和消失 tableView。它在第一个 longTapView 之后工作,但之后,tableView 不再出现。

我想 setHidden 函数有问题。这是我的代码:

-(void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer
{

    if(self.tableView==nil)
    {

        NSLog(@"tableView initiee");
        self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(gestureRecognizer.view.center.x - 10, gestureRecognizer.view.center.y - 10, 100, 100)];
        [self addSubview:self.tableView];
    }

    self.tableView.layer.cornerRadius = 20.0;
    self.tableView.layer.frame = CGRectInset(tableView.layer.frame, 20, 20);


    if (gestureRecognizer.state == UIGestureRecognizerStateBegan) {
        [self.tableView setHidden:NO];
        NSLog(@"tableView apparait");
    }

    if(gestureRecognizer.state == UIGestureRecognizerStateEnded)
    {
        [self.tableView setHidden:YES];
        NSLog(@"tableView disparait");
    }
}
4

1 回答 1

0

我想我可能发现了你的问题。 self.tableView.layer.frame = CGRectInset(tableView.layer.frame, 20, 20);每次调用 table view 层的宽度和高度都会减少 40。因此,通过第二次调用,您有一个角半径为 20 的 20x20 框架。这将不可见。尝试评论该行,看看它是否有效。

你想用那行代码来完成什么?

于 2012-07-13T21:15:01.337 回答