具有tableView对象的setHidden函数的奇点

时间:2012-07-13 20:44:49

标签: iphone uigesturerecognizer hidden

我,

当识别出longTapGesture时,我尝试在scrollView中管理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");
    }
}

1 个答案:

答案 0 :(得分:0)

我想我可能已经找到了你的问题。每次调用时,self.tableView.layer.frame = CGRectInset(tableView.layer.frame, 20, 20);都会将表视图图层的宽度和高度减少40。所以通过第二次调用,你有一个20x20的框架,角半径为20.这将是不可见的。尝试评论该行,看看它是否有效。

你想用这行代码完成什么?