我是新手,可以使用一些帮助。我有一个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 :(得分: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....
见图片 -