2014-03-04 37 views
0

觸發器後,我將自定義視圖附加到tableView.tableHeaderView屬性。 自定義視圖高50像素。我希望該表視圖能夠很好地動畫,以便在1秒的時間間隔內清楚地表明tableview爲該視圖騰出空間。自定義視圖應該以平滑方式「下推」tableview。如何「動畫」tableHeaderView?

任何想法如何做到這一點?

+0

使用動畫更改tableView框並添加標題。 –

+0

現在檢查我編輯我的代碼... –

回答

0

您可以動畫headerView高度期望的高度:

UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.tableView.frame.size.width, 10.0); 
self.tableView.tableHeaderView = headerView; 

// Add your subview(s) 
... 


// Animate to the new height (50px) 

CGRect headerViewFrame = CGRectMake(0.0, 0.0, self.tableView.frame.size.width, 50.0); 

[UIView animateWithDuration:1.0 animations:^{ headerView.frame = headerViewFrame; } completion:^(BOOL finished) { 
    self.tableView.tableHeaderView = headerView; 
}]; 
0

u能做到這樣,

先在controller.m文件頭視圖

@interface ViewController()<UITableViewDataSource,UITableViewDelegate> 
{ 
    UIView *headerView;//view for header 

} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 
    headerView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 50)]; 
    headerView.backgroundColor = [UIColor greenColor]; 

    self.tableView.tableHeaderView = headerView; 
    self.tableView.tableHeaderView.frame = CGRectZero; 
    [self.tableView setContentInset:UIEdgeInsetsMake(-50, 0, 0, 0)];//hear u set it above 50 top 
} 

    - (void)actionTriggered 
    { 
    [UIView animateWithDuration:1.0 animations:^{ 
     self.tableView.tableHeaderView.frame = CGRectMake(0, 0, 320, 50); 
     [self.tableView setContentInset:UIEdgeInsetsMake(0, 0, 0, 0)]; 

     } completion:^(BOOL finished) { 
     [self.tableView setContentInset:UIEdgeInsetsMake(0, 0, 0, 0)]; 
     }]; 
    } 

希望這有助於ü ... :)

+0

你陷入了一個共同的陷阱,就是使用表視圖的全局標題視圖來混淆區域標題視圖。不幸的是,這個特定的標題視圖沒有委託方法。 –

+0

ohh對不起,我會檢查.. –

+0

檢查現在我編輯我的答案... :) –