【问题标题】:How can i get each Segment on uisegmentcontroler with diffrent image?如何使用不同的图像获取 uisegmentedcontrol 上的每个段?
【发布时间】:2015-01-11 06:30:02
【问题描述】:

我需要在 UISegmentController 的每个段上使用不同的图像,我在 Stackoverflow 中尝试了许多解决方案,但没有一个能满足我的需求。我是IOS新手,所以请帮助我。

还可以使用其他一些 jpg 文件更改每个选择的图像。

目前我正在使用这种方法

UIImage *segmentUnselected =
[UIImage imageNamed:@"26.png"];


[[UISegmentedControl appearance] setBackgroundImage:segmentUnselected
                                           forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

但我希望每个段都有不同的图像。 有什么办法吗?

【问题讨论】:

标签: ios uisegmentedcontrol


【解决方案1】:

您是否尝试过根据段索引为每个段设置图像?例如,假设您在 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];

【讨论】:

  • 您需要在 .m 文件中通过向 UISegmentedControl 添加操作来处理此问题。我已经编辑了答案。请参阅上面的更新版本。
  • 但我想为“forState:UIControlStateNormal”和“UIControlStateSelected”设置图像。setImage 不适用于此属性。
【解决方案2】:

也许你可以看看 SMSegmentView,它允许你为一个段设置图像/文本:

这里是link for this framework。项目页面应该让您很好地了解如何使用它,并且源代码还附带了一个示例。

【讨论】:

    猜你喜欢
    • 2012-11-28
    • 1970-01-01
    • 2013-10-14
    • 2021-10-07
    • 2011-12-27
    • 2021-07-18
    • 1970-01-01
    • 2020-02-21
    • 2012-08-14
    相关资源
    最近更新 更多