要根据刷卡ID在主屏幕上显示完成的总百分比

问题描述 投票:0回答:1

[在我的应用中,我向左或向右滑动卡片,当所有卡片完成滑动后,我进入分数屏幕,其中显示总百分比答案,即30%或40%等。我想将该分数显示为根据各自的刷卡ID,以主屏幕为准。我的分数屏幕如下:

score screen

我想在主屏幕中显示如下图所示:home screen

问题是,当我滑动其他卡片类别的卡片,然后将百分比分数显示到主屏幕时,先前添加到先前类别的分数消失了。我想显示各个卡片的分数,即我先刷一下食品类别卡片,显示分数,然后再刷蔬菜卡片,然后显示分数。我希望显示两个类别的卡分数,依此类推。我认为每次我刷卡时都会尝试在主屏幕上显示分数,然后将其替换为当前分数。我需要显示我刷过的任何卡,它应该显示每张卡的相应分数

分数屏幕的源代码,我已将分数存储在userdefaults中,并且卡号也存储在userdefaults中

self.progressScoreView.value = CGFloat(self.tempProgress)
            UserDefaults.standard.set(self.progressScoreView.value, forKey: "percent_completed")
            UserDefaults.standard.set(self.cardId, forKey: "card_ID")
            UserDefaults.standard.synchronize()

我的主屏幕代码,我在其中显示用cellforrow方法编写的分数,并且我正在检查保存的卡ID和来自api端的卡的ID:

if let status = dict.cardStatus, let cardID = dict.cardId, status.count != 0
        {
            let card_completed_percent = UserDefaults.standard.double(forKey: "percent_completed")
            let tmpID = UserDefaults.standard.integer(forKey: "card_ID")
            print(tmpID)

            if status == "Unlock"
            {
                if card_completed_percent > 0 && (cardID == tmpID)
                {
                    let tmpCompleted = forTrailingZero(temp: card_completed_percent)
                    cell.percentCompleted.text = "\(tmpCompleted)%"
                    print(cell.percentCompleted.text!)
                    cell.deckLock.isHidden = true
                }
                else
                {
                    cell.percentCompleted.text = ""
                    print(cell.percentCompleted.text!)
                    cell.deckLock.isHidden = true
                }
            }
            else
            {
                cell.percentCompleted.text = ""
                cell.deckLock.isHidden = false
            }
        }

请帮助我解决这个问题

ios swift swipe
1个回答
0
投票

我认为您的问题在这里:

let card_completed_percent = UserDefaults.standard.double(forKey: "percent_completed")
let tmpID = UserDefaults.standard.integer(forKey: "card_ID")

i这样,您只节省了百分之一的价值。尝试这个:UserDefaults.standard.double(forKey:“ percent_completed_food”)和UserDefaults.standard.double(forKey:“ percent_completed_other_category”)这样您就可以为每个类别保存一个值。

© www.soinside.com 2019 - 2024. All rights reserved.