所以我有以下代码:
UISegmentedControl * segmentedCtrl = [[UISegmentedControl alloc] initWithFrame:CGRectMake(0, 0, 150, 35)];
[segmentedCtrl setTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"duck.png"]]];
[segmentedCtrl setSegmentedControlStyle:UISegmentedControlStyleBar];下面是我尝试使用的鸭子图像:

有人愿意告诉我为什么它不工作吗?我尝试了任何类型的图像,但都不起作用。仅供参考,我不想在我的分段控件中有一个鸭子背景。这只是为了说明使用colorWithPatternImage的setTint对任何类型的图像都不起作用。
发布于 2012-05-24 15:34:26
你有没有试过1px宽的图片?您正在使用的图像太大,无法创建图案
发布于 2012-05-24 18:21:09
UISegmentedControl (我认为和所有其他UIKit控件一样)不支持将图案颜色作为色调颜色。色调颜色主要用于创建有光泽的渐变,对于任意图案,这必须以非常不同的方式完成。
要自定义背景的外观,请使用setBackgroundImage:forState:barMetrics:和setDividerImage:forLeftSegmentState:rightSegmentState:barMetrics: (当然,使用适当的图像,模式并不适合这些图像)。
发布于 2012-05-24 19:13:16
UISegmentedControl上的tintColor仅用作计算控件中使用的渐变的基础。你不可能有一个很好的渐变图像,所以它只是使用了其中的一部分。听起来您需要的是UISegmentedControl的一个定制子类。
https://stackoverflow.com/questions/10733008
复制相似问题