【问题标题】:UISegmentedController not changing UIImageViewUISegmentedController 不改变 UIImageView
【发布时间】:2015-07-18 14:38:12
【问题描述】:

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

【问题讨论】:

  • 0-> @"ball2fire.png 1-> "@"ball2" 设置@"ball2.png"; 2-> @"ball70color" 到 @"ball70color.png" 我认为你的错误是图像是否可用?检查它@Bryan Keller

标签: ios xcode uiimage uisegmentedcontrol


【解决方案1】:

从您的问题来看,您似乎已将更改图片的代码放入您的 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....

看图-

【讨论】:

  • 效果很好!谢谢你这么棒的回答!
猜你喜欢
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 2012-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-09
相关资源
最近更新 更多