Ios 如何";在“中设置动画”;桌子头视图?

Ios 如何";在“中设置动画”;桌子头视图?,ios,objective-c,cocoa-touch,uitableview,Ios,Objective C,Cocoa Touch,Uitableview,触发后,我将自定义视图附加到tableView.tableHeaderView属性。 自定义视图的高度为50像素。我希望该表视图能够很好地向下设置动画,以便在1秒的时间间隔内清楚地看到该表视图正在为该视图腾出空间。自定义视图应该以平滑的方式“向下推”该表视图 有什么办法吗?您可以将headerView高度设置为所需高度的动画: UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.tableVie

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


有什么办法吗?

您可以将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;
}];
你可以这样做

首先在
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)];
      }]; 
   }
@界面视图控制器()
{
UIView*headerView;//头的视图
}
-(无效)viewDidLoad
{
[超级视图下载];
//加载视图后,通常从nib执行任何其他设置。
headerView=[[UIView alloc]initWithFrame:CGRectMake(0,0320,50)];
headerView.backgroundColor=[UIColor greenColor];
self.tableView.tableHeaderView=headerView;
self.tableView.tableHeaderView.frame=CGRectZero;
[self.tableView setContentInset:UIEdgeInsetsMake(-50,0,0,0)];//请听您将其设置在顶部50以上
}
-(无效)已触发的诉讼
{
[UIView animateWithDuration:1.0动画:^{
self.tableView.tableHeaderView.frame=CGRectMake(0,0320,50);
[self.tableView setContentInset:UIEdgeInsetsMake(0,0,0,0)];
}完成:^(布尔完成){
[self.tableView setContentInset:UIEdgeInsetsMake(0,0,0,0)];
}]; 
}

希望这能帮助你……:)

使用动画更改tableView框架并添加标题。现在检查我编辑的代码…您陷入了一个常见的陷阱,即将节标题视图与表视图的全局标题视图混淆。不幸的是,对于特定的头视图没有委托方法。