2017-12-20 19 views
0

나는 장치를 흔들면 사용자가 무작위로 데이터를 가질 수있는 응용 프로그램에서 일하고 있습니다.무작위로 된 문자열 및 UIImageView 함께

나는 임의의 숫자를 만드는 문자열 데이터와 함수를 담는 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도 있습니다. 따라서 일단 데이터가 무작위로 분류되면 사용자들에게 문자와 이름을 보여주기를 바랍니다. 그러나 지금은 이미지 뷰와 문자 을 무작위로 단 하나만 지정할 수 있습니다..

몇 가지 샘플 코드를 살펴 보았지만이를 해결하는 방법을 이해할 수 없었습니다.

- 업데이트 됨 참고 : 가지고있는 코드에 문제가 없습니다. characterName과 일치하도록 characterImageView를 무작위로 추출하는 방법을 모르겠습니다. 따라서 그림이 내 문자 배열의 문자에 속하면 nameLabel과 imageView가 일치해야합니다.

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] 

} 

그런 다음 다른 배열에 대해 동일한 작업을 수행 ... 당신의 문자가에 대한 예를 들어, 당신은 또한을 변경할 수 있도록

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() 
+0

어디에서'imageView'입니까? 'characterName','placeName','problemName' 및'timeName'은 무엇입니까? –

+0

'UIImageView'에도 사용하고있는 코드를 보여줄 필요가 있습니다. 그 순간에 문제가 무엇인지 명확히 알 수 없습니다. – Flexicoder

+0

imageView 부분을 추가하고 내가 원하는 것을 더 설명했습니다. –

답변

1

당신은뿐만 아니라 배열에서 이미지 이름을 저장해야 무작위로 텍스트를 설정하고 반환하는 것을 귀찮게하지 않습니다. 물론 다른 것을 필요로하지 않는 한

+0

감사합니다. 꽤 잘했습니다. –