我需要在UISegmentController的每个片段上使用不同的图像,我在Stackoverflow中尝试了很多解决方案,但没有一个满足我的需要。我是IOS的新手,所以请帮助我。
还可以使用其他一些jpg文件更改每个选择的图像。
目前我正在使用这种方法
UIImage *segmentUnselected =
[UIImage imageNamed:@"26.png"];
[[UISegmentedControl appearance] setBackgroundImage:segmentUnselected
forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
但我希望每个细分都有不同的图像。 有什么办法吗?
答案 0 :(得分:0)
您是否尝试根据细分指数为每个细分设置图片?例如,假设您在segmentedControl中有三个片段,并且想要为片段设置三个不同的图像。你可以这样做:
[self.mySegmentedControl setImage:[UIImage imageNamed:@"MYIMAGE1.PNG" forSegmentAtIndex:0];
[self.mySegmentedControl setImage:[UIImage imageNamed:@"MYIMAGE2.PNG" forSegmentAtIndex:1];
[self.mySegmentedControl setImage:[UIImage imageNamed:@"MYIMAGE3.PNG" forSegmentAtIndex:2];
当您想要更改值的图像时,可以创建一个处理segmentedControl UIControlValueChanged
的方法。像这样:
-(void)valueDidChange
{
switch ([self.mySegmentedControl selectedSegmentIndex]) {
case 0:
[self.mySegmentedControl setImage:[UIImage imageNamed:@"SOME_OTHERIMAGE"] forSegmentAtIndex:0];
break;
case 1:
[self.mySegmentedControl setImage:[UIImage imageNamed:@"SOME_OTHERIMAGE"] forSegmentAtIndex:1];
break;
case 2:
[self.mySegmentedControl setImage:[UIImage imageNamed:@"SOME_OTHERIMAGE"] forSegmentAtIndex:2];
break;
default:
break;
}
}
编辑:在您的viewDidLoad
中,您可以为UISegmentedControl
设置操作,以响应添加的方法。像这样,
[self.mySegmentedControl addTarget:self action:@selector(valueDidChange) forControlEvents:UIControlEventValueChanged];
答案 1 :(得分:0)