Ios UISegmentedController未更改UIImageView

Ios UISegmentedController未更改UIImageView,ios,xcode,uiimage,uisegmentedcontrol,Ios,Xcode,Uiimage,Uisegmentedcontrol,我是新手,需要一些帮助。我有一个5段控制器,但只有第一个按钮被确认。其他按钮似乎不起作用。我在两种情况下都尝试过此代码 -(IBAction)segmentbutton:(id)sender 及 正如你所知,最后一段代码是另一段代码,我没有运气尝试过。 如果您知道有更好的格式化方法,请随意分享 if (Selector.selectedSegmentIndex == 0) { Ball.image = [UIImage imageNamed:@"ball2fire.png"]; } i

我是新手,需要一些帮助。我有一个5段控制器,但只有第一个按钮被确认。其他按钮似乎不起作用。我在两种情况下都尝试过此代码

-(IBAction)segmentbutton:(id)sender

正如你所知,最后一段代码是另一段代码,我没有运气尝试过。 如果您知道有更好的格式化方法,请随意分享

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

从您的问题来看,您似乎已经在
viewDidLoad
方法中添加了更改图片的代码?这是错误的。加载视图时,仅调用viewDidLoad一次。您的代码需要在分段控件的iAction方法中,如下所示-

-(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键将分段控件从视图拖动到类文件以创建分段控件iAction时,请选择对象类型为
UISegmentedControl
对象,而不是
id
,这样您可以使用该对象的属性,正如您在每个if语句中所注意到的,代码可以更改为
if(sender.selectedSegmentIndex…

看图-


从您的问题来看,似乎您已将更改图片的代码放在了
viewDidLoad
方法中?这是错误的。加载视图时,仅调用一次viewDidLoad。您的代码需要在分段控件的iAction方法中,如下所示-

-(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从视图拖动到类文件以创建分段控件iAction时,请选择对象类型为
UISegmentedControl
对象,而不是
id
,这样您就可以使用该对象的属性,正如您在每个if语句中注意到的那样,代码c如果(发件人.selectedSegmentIndex…..

看图-


0->@“ball2fire.png 1->@“ball2”设置为“ball2.png”;2->@“ball70color”到“ball70color.png”我想你搞错了图像是否可用了?请检查@Bryan Keller0->@“ball2fire.png 1->@“ball2”设置为“ball2.png”;2->@“ball70color”到“ball70color.png”我想你搞错了图像是否可用了?检查一下@Bryan Kellert它工作得很好!谢谢你这么好的回答!工作得很好!谢谢你这么好的回答!