我今天启动了目标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]];
}
}
答案 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上面。我是否正确?那么你是如何获得上述日志的?