UISegmentedController 不改变 UIImageView

UISegmentedController not changing UIImageView

我是新手,需要一些帮助。我有一个 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"]];
}

从您的问题来看,您似乎已将更改图片的代码放入 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 从视图拖动到您的 class 文件以创建 SegmentedControl IBAction 时,select 对象类型是 UISegmentedControl 对象,而不是 id 通过这种方式,您可以使用该对象的属性,因为您会注意到在每个 if 语句中,代码可以更改为 if (sender.selectedSegmentIndex....

见图-