UISegmentedButton使用模式设置色调颜色

时间:2012-05-24 07:27:44

标签: iphone objective-c ios ipad

所以我有以下代码:

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


 [segmentedCtrl setSegmentedControlStyle:UISegmentedControlStyleBar];

这是我想要使用的鸭子形象:

enter image description here

任何人都想告诉我为什么它不起作用。我试过任何一种图像,但它不起作用。仅供参考我不想在我的分段控件中设置鸭背景。这只是为了说明使用colorWithPatternImage的setTint不适用于任何类型的图像。

5 个答案:

答案 0 :(得分:0)

你尝试过宽度为1像素的影像吗?您使用的图像太大,无法创建图案

答案 1 :(得分:0)

UISegmentedControl(我认为所有其他UIKit控件都不支持图案颜色作为淡色)。色调颜色基本上用于创建光泽渐变,并且必须以任意模式完全不同。

要自定义背景的外观,请改用setBackgroundImage:forState:barMetrics:setDividerImage:forLeftSegmentState:rightSegmentState:barMetrics:(当然,使用适当的图像,模式不适合这些)。

答案 2 :(得分:0)

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

答案 3 :(得分: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];

答案 4 :(得分:-1)

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

segment-control-background-color