2017-04-19 18 views
3

テーブルビューのヘッダーを点滅させたいが、機能しない。UITableViewのヘッダーがUIViewAnimationOptions.Repeatで機能しない

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 

    let headerView = UIView() 
    headerView.backgroundColor = UIColor.redColor() 

    UIView.setAnimationsEnabled(true) 

    UIView.animateWithDuration(
     0.3, delay: 0, 
     options: UIViewAnimationOptions.Repeat, 
     animations: { headerView.alpha = 0 }, 
     completion: nil) 

    return headerView 
} 
+0

headerViewはありますか?それとも空のビューですか? –

+0

アニメーションは、ビューがスーパービューに追加された後にのみ動作すると仮定します。このデリゲートメソッドはビューを要求していますが、まだtableviewに追加されていません。 – dip

答えて

2

を解決するかもしれテーブルビューの方法は、それが動作します

スウィフト3

func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) { 
      UIView.animate(
       withDuration: 0.3, delay: 0, 
       options: UIViewAnimationOptions.repeat, 
       animations: { view.alpha = 0 
      }, 
       completion: nil) 
} 
+0

この作品は、ありがとう! – blcsntb

0

はタイマーでこれを行うしてみてください、この問題は、あなたがこのようなアニメーションを呼び出す前UIView.setAnimationsEnabled(true);を設定する必要が

0

willDisplayHeaderViewデリゲートにアニメーションブロックを移動してみてください:

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 

    let headerView = UIView() 
    headerView.backgroundColor = UIColor.redColor() 

    UIView.animateWithDuration(
     0.3, delay: 0, 
     options: UIViewAnimationOptions.Repeat, 
     animations: { headerView.alpha = 0 }, 
     completion: nil) 

    return headerView 
} 
0

ビューがスーパービューに追加されていないため、アニメーション化されません。テーブルの再読み込み後に試してください:

let headerView = tableVIew.headerView(forSection: 0) 
UIView.transition(with: tableVIew, duration: 2, options: [.repeat], animations: { 
      headerView?.alpha = 0 
     }) 
関連する問題