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....
见图-
我是新手,需要一些帮助。我有一个 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....
见图-