UISegmentedController不更改UIImageView

时间:2015-07-18 05:32:43

标签: ios xcode uiimage uisegmentedcontrol

我是新手,可以使用一些帮助。我有一个5段控制器,但只有第一个按钮被确认。其他按钮似乎不起作用。我在

下尝试了这段代码
-(IBAction)segmentbutton:(id)sender

-(void)viewDidLoad

同样你可以告诉最后一段是一个不同的代码我试过没有运气。 如果有更好的方式来格式化您知道的,请随时分享!

if (Selector.selectedSegmentIndex == 0) {
    Ball.image = [UIImage imageNamed:@"ball2fire.png"];
}
if (Selector.selectedSegmentIndex == 1) {
    Ball.image = [UIImage imageNamed:@"ball2"];
}
if (Selector.selectedSegmentIndex == 2) {
    Ball.image = [UIImage imageNamed:@"ball70color"];
}
if (Selector.selectedSegmentIndex == 3) {
    Ball.image = [UIImage imageNamed:@"ball2b.png"];
}
if (Selector.selectedSegmentIndex == 4) {
    [Ball setImage:[UIImage imageNamed: @"ball2r.png"]];
}

1 个答案:

答案 0 :(得分:0)

从您的问题来看,您似乎已将代码更改为viewDidLoad方法中的图片?这是错的。加载视图时,viewDidLoad仅被调用一次。您的代码需要在segmentedControl的IBAction方法中使用,如此 -

-(IBAction)segmentbutton:(UISegmentedControl)sender{

   if (sender.selectedSegmentIndex == 0) {
     Ball.image = [UIImage imageNamed:@"ball2fire.png"];
   }
   if (sender.selectedSegmentIndex == 1) {
     Ball.image = [UIImage imageNamed:@"ball2"];
   }
   if (sender.selectedSegmentIndex == 2) {
     Ball.image = [UIImage imageNamed:@"ball70color"];
   }
   if (sender.selectedSegmentIndex == 3) {
     Ball.image = [UIImage imageNamed:@"ball2b.png"];
   }
   if (sender.selectedSegmentIndex == 4) {
     [Ball setImage:[UIImage imageNamed: @"ball2r.png"]];
   }
}

请注意,当您的分段控件被CTRL从视图拖动到您的类文件以创建SegmentedControl IBAction时,请选择对象TYPE是UISegmentedControl对象,而不是id通过这种方式,您可以使用该对象的属性,因为您会在每个if语句中注意到代码可以更改为 if (sender.selectedSegmentIndex....

见图片 -

enter image description here