2012-05-25 3 views
2

오늘 목표 C를 시작했고 지난 1 시간 동안 버튼을 클릭 할 때 이미지를 전환하는 방법을 알아 내려고 노력했습니다. 2 세그먼트가있는 세그먼트 버튼입니다. 첫 번째 세그먼트 이어야합니다. 0.jpg를로드하고 두 번째 세그먼트는 1.jpg를로드해야합니다.세그먼트 이미지에서 전환 이미지

0에서 1로 변경 될 수 있지만 뒤로는 변경되지 않으므로 첫 번째 스위치 만 등록되는 것처럼 보입니까? 당신이, 내가 디버깅을 시도했습니다 볼 수 있듯이

(모든 체크 아웃해야합니다

2012-05-25 13:22:31.173 Clock2[3398:f803] Segment clicked: 0 
2012-05-25 13:22:31.174 Clock2[3398:f803] 0.jpg 
2012-05-25 13:22:31.367 Clock2[3398:f803] Segment clicked: 1 
2012-05-25 13:22:31.368 Clock2[3398:f803] 1.jpg 

- (IBAction)clockselect:(id)sender { 
    NSString* segindex= [NSString stringWithFormat:@"%d", clockselectout.selectedSegmentIndex]; 
    NSString* type= @".jpg"; 
    NSString* filename= [segindex stringByAppendingString:type ]; 
    if (clockselectout.selectedSegmentIndex == '0') { 
     NSLog(@"Segment clicked: %d", clockselectout.selectedSegmentIndex); 
     // NSLog(filename); 
     [clockimg setImage:[UIImage imageNamed: filename]]; 
    } else { 
     NSLog(@"Segment clicked: %d", clockselectout.selectedSegmentIndex); 
     // NSLog(filename); 
     [clockimg setImage:[UIImage imageNamed: filename]]; 
    } 

} 

답변

2
-(IBAction)segmentControleChanged 
{ 

    switch(self.yourSegmet.selectedSegmentIndex) 
    { 

     case 0: 
     [clockimg setImage:[UIImage imageNamed: @"image1"]]; 
     break; 

      case 1: 
      [clockimg setImage:[UIImage imageNamed:@"image2"]]; 
      break; 

      default: 
      break; 
     } 

    } 
+0

D : –

+0

도와 주시겠습니까? :) – superGokuN

1

당신이 int 값을 비교하는

if (clockselectout.selectedSegmentIndex == 0) { 

를 사용해야합니다. .

언제나 가능합니다. 0에서 항상 거짓 1

if (clockselectout.selectedSegmentIndex == '0') { 

때문으로 WAP에만 == 문제 후 로그에 인쇄 안 경우)

+0

+1 - 멋진 캐치 :) –

+0

@Jamie Taylor : 나는 그것을 얻은 것 같아요. 당신은'int'가 아닌'NSString'과 비교했다. –

+0

덕분에 D : 내가 놓친 걸 보지 못한다 –

0

2012-05-25 13 : 22 : 31.367 Clock2 [3398 : f803] 클릭 세그먼트 : 1 2012-05-25 13 : 22 : 31.368 Clock2 [3398 : f803] 1.jpg

해당 블록에 입력하지 않았 으면 위에 인쇄되지 않은 내가 맞습니까? 그렇다면 어떻게 기록을 세웠습니까?

+1

OP는 == 문제가되지 않았습니까? – Jimmery