【问题标题】:How to "animate in" the tableHeaderView?如何“动画”tableHeaderView?
【发布时间】:2014-04-05 23:37:32
【问题描述】:

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

有什么想法吗?

【问题讨论】:

  • 用动画改变tableView Frame并添加header。
  • 现在检查我编辑了我的代码...

标签: ios objective-c cocoa-touch uitableview


【解决方案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;
}];

【讨论】:

    【解决方案2】:

    你可以这样做,

    首先在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)];
          }]; 
       }
    
    
      
    

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

    【讨论】:

    • 您陷入了一个常见的陷阱,即将节标题视图与表格视图的全局标题视图混淆。不幸的是,该特定标题视图没有委托方法。
    猜你喜欢
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 2013-08-19
    • 1970-01-01
    相关资源
    最近更新 更多