나는 장치를 흔들면 사용자가 무작위로 데이터를 가질 수있는 응용 프로그램에서 일하고 있습니다.무작위로 된 문자열 및 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()
어디에서'imageView'입니까? 'characterName','placeName','problemName' 및'timeName'은 무엇입니까? –
'UIImageView'에도 사용하고있는 코드를 보여줄 필요가 있습니다. 그 순간에 문제가 무엇인지 명확히 알 수 없습니다. – Flexicoder
imageView 부분을 추가하고 내가 원하는 것을 더 설명했습니다. –