2017-10-15 5 views
-2

함수를 사용하여 "number"를 확인하고 올바른 if 문을 반환하는 대신 long if 문을 작성하지 않아도됩니다. 숫자가 3 인 경우,올바른 UIImageView를 반환하는 방법

randNumber = Int(arc4random_uniform(UInt32(array.count)))  

      if number == 1{ 
      image1.image = UIImage(named: array[randNumber]) 
      number += 1 
     } else if number == 2{ 
      image2.image = UIImage(named: array[randNumber]) 
      number += 1 
     } else if number == 3{ 
      image3.image = UIImage(named: array[randNumber]) 
      number += 1 
     } else if number == 4{ 
      image4.image = UIImage(named: array[randNumber]) 
      number += 1 
     } 

를 다음 이미지 3는

누구나 어떤 제안이 반환됩니다 : 저는 여기에 현재 코드를 사용하고 있습니까?

+0

그래서 코드를 단축 할 이것은 우리가 우리가 원하는 이미지보기에 액세스하기 위해이 표현을 사용할 수 있다는 것을 의미? – Sweeper

답변

1

다음은 코드를 단축하는 방법입니다.

는 이미지 뷰에서 배열을 확인하십시오

let imageViewArray = [image1, image2, image3, image4] 

하여 난수를 생성합니다

randNumber = Int(arc4random_uniform(UInt32(array.count))) 

여기에 마법을 온다. 사용하는 number의 가치와 이미지 뷰의 대응은 다음과 같이이기 때문에 :

number ImageView 
1   image1 
2   image2 
3   image3 
4   image4 

은 당신의 이미지 전망 배열의 인덱스 '대응은 다음과 같이이다 : 우리는 단지 필요

index  ImageView 
0   image1 
1   image2 
2   image3 
3   image4 

배열 인덱스와 일치하도록 number에서 1을 뺍니다.

imageViewArray[number - 1] 

이 전체 라인은 다음과 같이 될 것입니다 :

imageViewArray[number - 1].image = UIImage(named: array[randNumber]) 
+0

도움을 많이 주셔서 감사합니다, 이것은 내가 찾고 있었던 것입니다. "String '타입의 값에 멤버'image '가 없습니다." – Gjeruldsen

+0

'image1'과 다른 이미지 뷰를'UIImageView'로 선언 하시겠습니까? @Gjeruldsen – Sweeper

+0

@IBOutlet 약한 var 이미지 1 : UIImageView! – Gjeruldsen