簡體   English   中英

UIView動畫在UITableViewCell中無法正常工作

[英]UIView animation doesn't work properly inside UITableViewCell

我有一個UITableViewCell,其中包含一個UIView,當調用TableViewCell的awakeFromNib()時會對其進行動畫處理。 動畫確實適用於出現TableViewController時調用的單元格,但滾動時生成的單元格根本不移動。 我該如何解決? 我在Github上添加了一個示例來演示該問題。

TableViewController

import UIKit

class ViewController: UITableViewController {

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 20
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = self.tableView.dequeueReusableCellWithIdentifier("cell") as! TableViewCell

    return cell
}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


}

TableViewCell

import UIKit

class TableViewCell: UITableViewCell {

@IBOutlet weak var animatorCell: UIView!

override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
    UIView.animateWithDuration(0.3, delay: 0.0, options: [.CurveEaseInOut, .Repeat, .Autoreverse], animations: { () -> Void in
        self.animatorCell.transform = CGAffineTransformMakeTranslation(0, 10)
        }, completion: nil)
}

}

我不確定,但是由於您使用的是dequeueReusableCell ,所以我猜沒有調用awakeFromNib 使用awakeFromNib初始化第一個單元格,但是接下來的單元格將是相同的單元格,可以重復使用,因此不會使用awakeFromNib初始化它們。 如果我錯了, awakeFromNib 稱為下一個細胞,那么我想它進入屏幕之前,動畫完成。

無論哪種方式,您都可以嘗試在tableView(_:willDisplayCell:forRowAtIndexPath:)使用諸如tableView(_:willDisplayCell:forRowAtIndexPath:)here )之類的東西,然后從那里調用單元格上的動畫方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM