如何"animate in"表头视图?



在触发器之后,我将自定义视图附加到tableView.tableHeaderView属性。自定义视图的高度为 50 像素。我希望该表视图能够很好地向下动画,以便在 1 秒间隔内清楚地表明表视图正在为该视图腾出空间。自定义视图应以平滑的方式"向下推"该表视图。

有什么想法吗?

您可以将标题视图高度设置为所需高度:

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;
}];

你可以这样做,

首先在文件中获取标题视图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)];
      }]; 
   }

  

希望这对您有所帮助... :)

最新更新