2012-07-10 67 views
1

我,的TableView不消失時setHidden函數被調用

在我handleLongPress功能(CF:手勢識別),我嘗試做一個TableView中出現,並在年底,當手勢刪除,消失。爲此我使用手勢識別器狀態屬性以及tableView的setHidden函數。不幸的是,tableView出現後並沒有消失。我不明白爲什麼。如果你有想法,我會很感激。

這裏是我的代碼:

-(void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer 
{ 
    UITableView *tableView = [[UITableView alloc]initWithFrame:CGRectMake(gestureRecognizer.view.center.x - 10, gestureRecognizer.view.center.y - 10, 100, 100)]; 

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


    if (gestureRecognizer.state == UIGestureRecognizerStateBegan) { 
    [self addSubview:tableView]; 
    } 

    if(gestureRecognizer.state == UIGestureRecognizerStateEnded) 
    { 
     [tableView setHidden:YES]; 
    } 
} 

回答

2

你現在重新創建表視圖每次,要麼將它添加到屏幕或沒有,你需要捕捉到你的tableview在屬性或伊娃,然後再從那裏,即時通訊假設你只想要一個表視圖,下面將解決這個問題

在你的界面有一個的tableView財產在你implem

@interface .. 
{ 

} 
@property(nonatomic, retain) UITableView *tableView; 
@end 

合成這種entation ...

-(void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer 
    { 
     if(tableView==nil) 
     { 
     self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(gestureRecognizer.view.center.x - 10, gestureRecognizer.view.center.y - 10, 100, 100)] autorelease]; 
     [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:false]; 
     } 

     if(gestureRecognizer.state == UIGestureRecognizerStateEnded) 
     { 
      [self.tableView setHidden:YES]; 
     } 
    } 

有關屬性的詳細信息檢查this出 希望它有助於.. 丹尼爾

+0

令人驚訝的是,tableview出現並消失一次,但不是之後。如果選中並定期調用「if」塊。它像setHidden函數不能從YES到NO被調用兩次。這與不透明的功能是一樣的。 – 2012-07-10 20:50:48

0
if(gestureRecognizer.state == UIGestureRecognizerStateEnded) 
{ 
    [tableView removeFromSuperview]; 
} 

,因爲你要添加的tableview,你應該刪除它。否則,添加tableview outisde你的longPressGestureRecognizer方法,並根據需要隱藏/取消隱藏

+1

我已經試過了,它沒有工作 – 2012-07-10 20:23:41

+0

嘗試setHidden:YES並從Superview行中刪除。如果tableview仍然可見,那麼tableView將被添加或在其他地方可見 – 2012-07-10 20:49:39

相關問題