簡體   English   中英

當UITableView滾動時,UITableViewCell動畫停止

[英]UITableViewCell animations stop when UITableView is scrolling

我正在我的應用程序中創建一個“事件倒計時”場景,該場景使用UITableViewController來顯示將來發生的事件列表。 在每個單元格中,我有一個倒數計時器,它會計算事件發生前的時間。

在此輸入圖像描述

我想為這些倒計時字段設置動畫,以便實時記下這些字段。 我已經實現了這個動畫,但問題是當用戶滾動uitableview時動畫暫停,直到用戶釋放滾動。 我希望動畫即使在滾動時也能繼續。

我動畫的方式是每隔0.25秒在NSTimer上調用[self.tableview reloadData](我知道這不是最有效的方法 - 這更像是測試動畫本身)。 我還嘗試在UITableViewCell本身內運行NSTimer調用視圖更新 - 但滾動時仍然會暫停動畫。

任何人都知道調用動畫的設置或替代方式,以便在滾動時保持它的運行狀態?

更多關於UIScrollViews的同一問題的搜索引發了我的帖子我的自定義UI元素......

基本上發生的事情是我正在使用的NSTimer在滾動時沒有被更新,因為滾動阻止了它自己的運行循環模式之外的所有內容。 修復是將動畫NSTimer添加到滾動使用的相同運行循環模式:NSRunLoopCommonModes

以下是如何在代碼中執行此操作:

NSTimer *timer = [NSTimer timerWithTimeInterval:0.25 self selector:@selector(updateCountdownLabels) userInfo:nil repeats:YES]; 
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

我猜您正在使用視圖來存儲倒計時數據。 而是創建倒計時模型,可以使用開始日期(NSDate)和持續時間(NSTimeInterval)進行初始化。 然后根據計時器而不是您的視圖更新那些倒計時對象。 當一個tableview單元格在視圖中變得可見時,它將從相應的Countdown對象加載數據,一切都應該順利運行。

暫無
暫無

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

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