0

私、

longTapGestureが認識されたときに、scrollView内のtableViewの外観を管理しようとしています。longTapGestureが終了すると、このtableViewは消える必要があります。tableViewの表示と非表示には、2つの「if」ブロック内でsetHidden関数を使用します。最初の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);テーブルビューのレイヤーの幅と高さは、呼び出されるたびに40ずつ減少します。したがって、2回目の呼び出しまでに、コーナー半径が20の20x20フレームが作成されます。これは表示されません。その行をコメントアウトして、機能するかどうかを確認してください。

そのコード行で何を達成しようとしていますか?

于 2012-07-13T21:15:01.337 に答える