0

所以我有以下代码:

  UISegmentedControl * segmentedCtrl = [[UISegmentedControl alloc] initWithFrame:CGRectMake(0, 0, 150, 35)];
    [segmentedCtrl setTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"duck.png"]]];


 [segmentedCtrl setSegmentedControlStyle:UISegmentedControlStyleBar];

这是我正在尝试使用的鸭子图像:

在此处输入图像描述

有人愿意告诉我为什么它不起作用。我尝试了任何类型的图像,但它不起作用。仅供参考,我不想在我的分段控制中使用鸭子背景。这只是为了说明使用 colorWithPatternImage 的 setTint 不适用于任何类型的图像。

4

5 回答 5

0

UISegmentedControl 上的 tintColor 仅用作计算控件中使用的渐变的基础。你不能很好地拥有渐变图像,所以它只是使用它的一部分。听起来您需要的是 UISegmentedControl 的自定义子类。

于 2012-05-24T11:13:16.157 回答
0

你试过 1px 宽度的图片吗?您使用的图像太大,无法创建图案

于 2012-05-24T07:34:25.777 回答
0
    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:nil];
    [segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"up_button.png"] atIndex:0 animated:YES];
    [segmentedControl insertSegmentWithImage:[UIImage imageNamed:@"down_button.png"] atIndex:1 animated:YES];
于 2012-05-24T11:29:17.697 回答
0

UISegmentedControl(我认为,与所有其他 UIKit 控件一样)不支持将图案颜色作为色调颜色。色调颜色基本上用于创建有光泽的渐变,并且对于任意图案必须以非常不同的方式完成。

要自定义背景的外观,请使用setBackgroundImage:forState:barMetrics:andsetDividerImage:forLeftSegmentState:rightSegmentState:barMetrics:代替(当然,对于适当的图像,图案并不适合这些)。

于 2012-05-24T10:21:08.960 回答
-1

首先通过在 Photochop 中打开图像来获取颜色的 RGB 值,然后使用该值。

段控制背景颜色

于 2012-05-24T08:14:01.593 回答