随机字符串和UIImageView一起使用

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

我正在开发一款应用程序,可让用户在摇动设备时随机获取数据。

我有4个数组来保存字符串数据和函数,它创建随机数;

let characters = ["Zoolog", "Xander"]

let problems = ["Asteroid", "Dr Evil"]

let places = ["Vast Desert", "Ice Caves"]

let time = ["Wednesday 12th, 1220", "1236"]



func randomCharacter() -> String {

    let randomNumber = GKRandomSource.sharedRandom().nextInt(upperBound: characters.count)

    return characters[randomNumber]

}

func randomPlaces() -> String {

    let randomNumberOne = GKRandomSource.sharedRandom().nextInt(upperBound: places.count)

    return places[randomNumberOne]
}

func randomProblems() -> String {

    let randomNumberTwo = GKRandomSource.sharedRandom().nextInt(upperBound: problems.count)

    return problems[randomNumberTwo]

}

func randomTime() -> String {

    let randomNumberThree = GKRandomSource.sharedRandom().nextInt(upperBound: time.count)

    return time[randomNumberThree]
}

在我的viewController上,数据是随机的,用户在摇动设备后会在屏幕上获得随机数据。

 override func motionEnded(_ motion: UIEventSubtype, with event: UIEvent?) {
    if(event?.subtype == UIEventSubtype.motionShake) {

        characterName.text = myStoryCharacters.randomCharacter()
        placeName.text = myStoryCharacters.randomPlaces()
        problemName.text = myStoryCharacters.randomProblems()
        timeName.text = myStoryCharacters.randomTime()

    }
} 

我还有一个用于角色图片的imageView。因此,一旦数据被随机化,我希望我的用户也能看到这些字符及其名称。但目前,我只能将imageView和字符分开随机分组。

我已经阅读了一些示例代码,但无法理解如何处理此问题。

- 更新注意:我的代码没有问题。我不知道如何随机化characterImageView以匹配characterName。因此,如果图片属于我的字符数组中的字符,那么nameLabel和imageView应匹配。

override func viewDidLoad() {
    super.viewDidLoad()
    super.becomeFirstResponder()
    // Do any additional setup after loading the view, typically from a nib.

    characterImageView.image = UIImage(named: "elegantEmma")
    placeImageView.image = UIImage(named: "zombieLand")
    problemImageView.image = UIImage(named: "meteor")
    timeImageView.image = UIImage(named: "time")

    //First random value shown on the launch
    characterName.text = myStoryCharacters.randomCharacter()
    placeName.text = myStoryCharacters.randomPlaces()
    problemName.text = myStoryCharacters.randomProblems()
    timeName.text = myStoryCharacters.randomTime()
ios swift random uiimageview
1个回答
1
投票

您还需要将图像名称存储在数组中,例如,对于您的角色来说......

let characters = ["Zoolog", "Xander"]
let characterImages = ["ZoologImage", "XanderImage"]   // These relate to the image names in your assets

func randomCharacter() -> String {

    let randomNumber = GKRandomSource.sharedRandom().nextInt(upperBound: characters.count)

    characterImageView.image = UIImage(named: characterImages[randomNumber])

    return characters[randomNumber]

}

然后为其他数组执行相同的操作,您也可以更改随机函数来设置文本而不用再回复它,除非您当然需要它来做其他事情

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