觸發器後,我將自定義視圖附加到tableView.tableHeaderView屬性。 自定義視圖高50像素。我希望該表視圖能夠很好地動畫,以便在1秒的時間間隔內清楚地表明tableview爲該視圖騰出空間。自定義視圖應該以平滑方式「下推」tableview。如何「動畫」tableHeaderView?
任何想法如何做到這一點?
觸發器後,我將自定義視圖附加到tableView.tableHeaderView屬性。 自定義視圖高50像素。我希望該表視圖能夠很好地動畫,以便在1秒的時間間隔內清楚地表明tableview爲該視圖騰出空間。自定義視圖應該以平滑方式「下推」tableview。如何「動畫」tableHeaderView?
任何想法如何做到這一點?
您可以動畫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;
}];
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)];
}];
}
希望這有助於ü ... :)
你陷入了一個共同的陷阱,就是使用表視圖的全局標題視圖來混淆區域標題視圖。不幸的是,這個特定的標題視圖沒有委託方法。 –
ohh對不起,我會檢查.. –
檢查現在我編輯我的答案... :) –
使用動畫更改tableView框並添加標題。 –
現在檢查我編輯我的代碼... –