2012-05-24 2 views
0

Так у меня есть следующий код:UISegmentedButton настройки оттенка цвета, используя шаблон

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

Кто-нибудь заботиться, чтобы сказать мне, почему это не работает. Я пытался с любым изображением, и он не работает. FYI Iam не пытается иметь утиный фон в моем сегментированном контроле. Это просто для иллюстрации того, что setTint с использованием colorWithPatternImage не работает для какого-либо изображения.

+0

Вы пробовали использовать этот цвет как цвет фона какого-то большего вида, чтобы убедиться, что проблема действительно находится в 'colorWithPatternImage:' part? –

+0

да, я попробовал это – adit

+0

Каковы были результаты? –

ответ

0

Вы пробовали изображение шириной 1 пиксель? Изображение, которое вы используете, слишком велико для создания рисунка.

+0

да, я тоже .. не работал – adit

-1

Сначала возьмите значение цвета RGB, открыв изображение в Photochop, затем используйте эти значения.

segment-control-background-color

+0

Как это поможет ему использовать шаблон (изображение) для цвета фона? –

0

UISegmentedControl (как и все другие элементы управления UIKit, я думаю) не поддерживает шаблонов цветов, как оттеночные цвета. Цвет оттенков в основном используется для создания глянцевого градиента, и это должно быть сделано по-разному с произвольным шаблоном.

Чтобы настроить внешний вид фона, используйте вместо него setBackgroundImage:forState:barMetrics: и setDividerImage:forLeftSegmentState:rightSegmentState:barMetrics: (с соответствующими изображениями, конечно, рисунки не подходят для них).

0

TintColor на UISegmentedControl используется только в качестве основы для расчета градиента, используемого в элементе управления. Вы не можете получить градиентное изображение, поэтому просто используйте его часть. Похоже, что вам нужен пользовательский подкласс UISegmentedControl.

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]; 
Смежные вопросы