![](/img/trans.png)
[英]How to maintain UITableViewCell state when UITableView scrolling?
[英]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.