在段单击时切换图像

时间:2012-05-25 12:30:25

标签: iphone objective-c cocoa-touch

我今天启动了目标C,并且在最后一小时我一直试图找出当我点击按钮时如何切换图像,它是一个包含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]]; 
    }

}

3 个答案:

答案 0 :(得分: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;
       }

  }

答案 1 :(得分:1)

你必须使用

if (clockselectout.selectedSegmentIndex == 0) {

比较int值。

你总是可以从0换到1,因为

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

总是假的;)

答案 2 :(得分:0)

如果只有==是问题,那么在日志中它不应该打印

2012-05-25 13:22:31.367 Clock2 [3398:f803]点击了一段:1 2012-05-25 13:22:31.368 Clock2 [3398:f803] 1.jpg

因为如果它没有进入那个区块那么它就不应该打印在log上面。我是否正确?那么你是如何获得上述日志的?