gpt4 book ai didi

swift - 如何使用结构缩短此代码?

转载 作者:搜寻专家 更新时间:2023-10-31 19:33:42 25 4
gpt4 key购买 nike

刚开始学Structures,我觉得可以用Structures解决,但我不确定。

案例:我有一个 VC,有很多玩家可以解锁的成就。每个成就都有:1.成就图片和文字周围的边框图片2.成就图(每个成就都有一个简单的“锁”图,表示成就已锁定)3.成就文字4. 确定成就状态的 bool 值(false=locked, true =unlocked)在玩游戏时,可以完成一些成就。这样, bool 值将被设置为 true。当玩家返回成就 VC 时,成就图像必须设置为该成就的正确图像。

问题:我现在的代码如下:

func SetImagesForPowerUps()
{
if UnlockedAchievement1 == true
{
Achievement1Text.textColor = UIColor.greenColor()
Achievement1Image.image = UIImage(named: "Achievement1Unlocked")
}
if UnlockedAchievement2 == true
{
Achievement2Text.textColor = UIColor.greenColor()
Achievement2Image.image = UIImage(named: "Achievement2Unlocked")
}
}

如您所见,我必须一遍又一遍地重复我的代码,这是很多加类工作。我确信有一个更快的方法来解决这个问题,除非我不知道我能以更快的方式解决这个问题。

问题:我怎样才能缩短这段代码使其工作?

最佳答案

//有多少成就?

var achievements:[Bool] = []
var achievementText:[UILabel] = [] //I am not sure what achievementText Parent class is
var achievementImage:[UIImage] = [] //AchievementImage is subclass of UIImage? Not sure what achievementImage parent class is.

for index in 0 ..< x
//Where x is the number of possible achievements, default all achievements to false at the very beginning of the app or wherever.
achievements.append(false)
}

func SetImagesForPowerUps() {
for index in 0 ..< achievements.count {
if(achievements[index]) {
achievementText[index].textColor = UIColor.greenColor()
achievementImage[index].image = UIImage(named: "AchievementUnlocked")
}
}
}

然后,当他们解锁成就时,您就可以确定他们所处的级别。然后设置 achievements[level+1] = true //(如果你使用从 1 开始的级别)

关于swift - 如何使用结构缩短此代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38556460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com