2013-08-11 2 views
-1

컬렉션에있는 버튼을 클릭 할 때마다 새 카드가 생성되도록 할 수 있기를 원합니다. 어떤 이유로이 방법은 2 회의 클릭에 대해 작동하고 선택된 상태에 대한 제목은 0이됩니다. 당신의 도움을 주셔서 감사합니다!랜덤 카드 수집 생성기

답변

2

내가 CS193P로 착각 한 것이 아니라면. 클릭 할 때마다 for 루프를 거치며 컬렉션의 모든 버튼에 대해 카드를 다시 그립니다. 당신은 아마 갑판에 52 장의 카드 만 가지고 있고 두번의 클릭 후에 더 많은 카드가 없기 때문에 [self.deck drawRandomCard]은 nil로 제목을 설정하는 nil을 리턴합니다. 콜렉션의 세터에 모든 카드를 설정할 필요는 없습니다. 플립 카드를 뒤집을 때 각 카드를 설정할 수 있습니다. 이것은 내 플립 카드 버전입니다. 또한 카드가 더 이상 없는지 확인합니다. 이게 네가 찾고 있던 것이 있으면 알려줘.

- (IBAction)flipCard:(UIButton *)sender { 

    sender.selected = !sender.selected; 
    if (sender.selected) { 
     PlayingCard *randomCard = [self.deck drawRandomCard]; 
     if (!randomCard) { 
      //will alert user no more cards, disable the button and set alpha to 0.3 
      sender.enabled = NO; 
      sender.alpha = 0.3; 
      UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"No More Cards" message:@"Game Over" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
      [alert show]; 
     }else{ 
      [sender setTitle:randomCard.contents forState:UIControlStateSelected]; 
     } 
    } 
    self.flipCount++; 
} 
관련 문제