swift - 检查多个 bool 值并根据该 bool 值更改图像的最快方法

标签 swift loops

我有多个用户可以在游戏中获得的成就。当用户进入成就VC时,他应该看到成就完成时的图像。

我现在在 viewDidLoad 函数中使用这段代码:

if unlockedAchievement1 == true
        {
            achievement1Text.textColor = UIColor.greenColor()
            achievement1Image.image = UIImage(named: "achievement1Unlocked")
        }
        if unlockedAchievement2 == true
        {
            achievement2Text.textColor = UIColor.greenColor()
            achievement2Image.image = UIImage(named: "achievement2Unlocked")
        }

这样可以,但是复制粘贴这个加类要花很多时间。我怎样才能缩短这个?我应该上课吗?我读过 for in loops,但我不太明白。欢迎任何帮助!

最佳答案

我感觉我以前见过这个。但无论如何...

//use array of bools. First declare as empty array.
//Use Core data to achieve saving the Booleans if you need to. 
let achievements:[Bool] = [] 
let achievementsImage:[UIImage] = []
let achievementsText:[UITextView] = []

func viewDidLoad() {
    //Say you have 5 achievements.
    for index in 0 ..< 5 {
        achievements.append(false)
        achievementsImage.append(UIImage(named: "achievementLocked"))
        achievementText.append(UITextView())
        //Then you can edit it, such as.
        achievementText[index].frame = CGRect(0, 0, 100, 100)
        achievementText[index].text = "AwesomeSauce"
        self.view.addSubview(achievementText[index])
        achievementText[index].textColor = UIColor.blackColor()
    }
}

//Call this function and it will run through your achievements and determine what needs to be changed
func someFunction() {
    for index in 0 ..< achievements.count {
        if(achievements[index]) {
            achievements[index] = true
            achievementsImage[index] = UIImage(named: String(format: "achievement%iUnlocked", index))
            achievementsText[index].textColor = UIColor.greenColor
        }
    }
}

关于swift - 检查多个 bool 值并根据该 bool 值更改图像的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38797978/

相关文章:

android - 遍历Android中的指定目录

带有框架的 iOS 应用程序在设备上崩溃,dyld : Library not loaded, Xcode 6 Beta

JavaScript - 遍历对象 'class' 实例中的对象

ios - 为什么 UICollectionView 偏移量在键盘出现时发生变化

swift - FireBase - 将子项(按原样)移动到不同的路径

Python循环控制。避免悬挂环

java - 如何使用 Iterator 从 Java 中的主列表中删除整个列表

c++ - 如何从顺序遍历中列出二叉搜索树中每个节点的子节点?

ios - 为什么我的导航项/栏从 Xcode 9 中的 Storyboard 中消失

ios - 广告未在 MoPub IOS-SWIFT 中加载 - 横幅