2012-10-15 2 views
1

11에서 20 사이의 임의의 숫자를 생성하고 button.Every 시간 임의의 숫자가 생성됩니다 임의의 숫자가 생성됩니다 임의의 숫자가 아이폰에서 스 와이프 때 두 이미지는 예를 들어 12 이미지를 12 번 스 와이프 한 다음 스 와이프를 중지합니다.아이폰에서 무작위 이미지 스 와이프

난수를 생성했지만 이미지를 임의 번호로 스 와이프 할 수는 없습니다.

여기 내 코드

-(IBAction)btngeneratePressed:(id)sender{ 



number = 1 + arc4random() % 10 + 10; 


for (int j=1;j<number-1;j++) // generate unique random number only once 
{ 



    NSArray *myImageNames = [NSArray arrayWithObjects:@"1.png", @"2.png", nil]; 
    //int index = arc4random() % [myImageNames count]; 

    int index = arc4random() % 2; 

    UIImage *myImage = [UIImage imageNamed:[myImageNames objectAtIndex:index]]; 
    img.image = myImage; 




    if(number == j){ 

     NSLog(@"Number %d ",j); 

     UIAlertView *someError = [[UIAlertView alloc] initWithTitle: @"Rendom number" message: @"Image swip" delegate: self cancelButtonTitle: @"Ok" otherButtonTitles: nil]; 

     [someError show]; 
     [someError release]; 
     break; 


    } 

} 
} 


- (void)viewDidLoad 
{ 

    number = 1 + arc4random() % 10 + 10; 


    NSString *string=[NSString stringWithFormat:@"%i",number]; 


    int p=string; 




    label.text = string; 




    for(int j=1;j<number-1;j++) 

    { 



     UISwipeGestureRecognizer *recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self 
                         action:@selector(btngeneratePressed:)]; 
     [recognizer setDirection:(UISwipeGestureRecognizerDirectionLeft)]; 
     recognizer.numberOfTouchesRequired = 1; 
     recognizer.direction=UISwipeGestureRecognizerDirectionLeft; 
     [self.view addGestureRecognizer:recognizer]; 
     [recognizer release];  

     //Add a right swipe gesture recognizer 
     recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self 
                   action:@selector(btngeneratePressed:)]; 
     recognizer.numberOfTouchesRequired = 1; 
     recognizer.delegate = self; 

     [recognizer setDirection:(UISwipeGestureRecognizerDirectionRight)]; 
     [self.view addGestureRecognizer:recognizer]; 
     [recognizer release]; 


     if(number == j){ 

      NSLog(@"Number %d ",j); 

      UIAlertView *someError = [[UIAlertView alloc] initWithTitle: @"Rendom number" message: @"Image swip" delegate: self cancelButtonTitle: @"Ok" otherButtonTitles: nil]; 

      [someError show]; 
      [someError release]; 
      break; 

     } 




    } 


} 

답변

1

나는 완전히 당신이 뭘 하려는지 이해가 안 입니다,하지만 난 덩어리로 그것을 깨는 것이 아니라 한 번에 모든 일을하려고하여 문제를 접근하는 것, 모두 뒤죽박죽.

psedo-random 고유 번호 생성기를 한 번 작업으로 분류하고이를 클래스/메소드로 캡슐화하십시오. /이미지 및 캐치 슬쩍 한 다음 배수를 계산하는 방법을 알아 작업, 이미지 디스플레이 와이어 밖으로 정렬 와이프 함께

당신이 확실히 수-1 슬쩍 제스처 인식기를 생성하고 의미로서 모든 맞지 않아. 당신은 각각 하나를 원한다.

당신은 btngeneratePressed를 호출 할 때마다 모든 이미지를 재생성하고 있습니다. 이것은 확실히 비효율적이며 느립니다.

문제를 개별 부품으로 분해하고 각각을 해결하여 필요한 최종 솔루션을 구축하십시오.