2

我今天开始了目标 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]]; 
    }

}
4

3 回答 3

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;
       }

  }
于 2012-05-25T12:50:22.403 回答
1

你必须使用

if (clockselectout.selectedSegmentIndex == 0) {

比较 int 值。

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

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

总是假的;)

于 2012-05-25T12:43:02.300 回答
0

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

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

因为如果它没有进入该块,那么它不应该打印在日志之上。我正确吗?那么你是如何获得日志之上的?

于 2012-05-25T13:11:28.057 回答