UISegmentedControl没有设置正确的图像

时间:2014-03-24 10:06:10

标签: objective-c ios7 uisegmentedcontrol

我正在尝试为UISegmentedControll

中的每个细分控制索引设置自定义图像

我正在设置图像:

UIImage *selectAll = [UIImage imageNamed:@"Select All Active"];
[selectAll imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

[self.segmentedControl setImage:selectAll forSegmentAtIndex:0];

但是我只是在段索引中得到一个空格并且图像没有正确显示。

有不同的方法吗?

我正在为iOS7构建应用程序。

修改

以下是在IB或代码中设置图像的样子:

enter image description here

3 个答案:

答案 0 :(得分:0)

听起来您的图片不存在,您确定它的名字是“Select All Active.png”吗?我建议你首先将它重命名为test.png以查看它是否有效。

答案 1 :(得分:0)

我认为你的UIImage对象是nil所以检查正在使用。

UIImage *selectAll = [UIImage imageNamed:@"Select All Active"];
if (selectAll == nil) {
    NSLog(@"nil");
}

如果不是nil,您可以尝试使用

UIImage *selectAll;
if ([UIImage instancesRespondToSelector:@selector(imageWithRenderingMode:)]) {
    selectAll = [[UIImage imageNamed:@"Select All Active"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
}else {
    selectAll = [UIImage imageNamed:@"Select All Active"];
}
self.segmentedControl.tintColor = [UIColor clearColor];
[self.segmentedControl setImage:selectAll forSegmentAtIndex:0];

答案 2 :(得分:0)

我认为你所看到的是UISegmentedControl的分隔符。您还需要为分隔符设置图像..