Как установить изображение в UISegmentedControl в iphone?

Я новичок в разработке iphone. Я создал UISegmentedControl с двумя сегментами. Я хочу отображать изображения для каждого сегмента вместо заголовка. Вот мой код

NSArray *itemArray = [NSArray arrayWithObjects: @"segment1", @"segment2", nil];
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray];
segmentedControl.frame = CGRectMake(5,100,300,40);
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.selectedSegmentIndex = 1;
[self.view addSubview:segmentedControl];
[segmentedControl release]; 

Но вместо отображения заголовка, сегмента1 и сегмента2 он должен быть заменен изображениями, которые у меня есть. Пожалуйста, помогите мне. Спасибо.

Ответы

Ответ 1

Это почти то, что у вас было, просто передайте массив UIImages вместо NSStrings.

NSArray *itemArray = [NSArray arrayWithObjects:
    [UIImage imageNamed:@"segment1.png"],
    [UIImage imageNamed:@"segment2.png"],
    nil];

Ответ 2

Если вы хотите изменить изображение во время выполнения, используйте следующий метод:

- (void)setImage:(UIImage *)image forSegmentAtIndex:(NSUInteger)segment

например:.

[segmentedControl setImage:[UIImage imageNamed:@"segment1.png"] forSegmentAtIndex:0];

Ответ 3

Это просто сделать с помощью Interface Builder (вкладка Inspectors Inspector).

Image setting with IB

Также вы можете установить один сегмент с изображением, а другой - с текстом.

Result

Счастливое xCoding! )

Ответ 4

Для пользователя-строителя интерфейса установите "render as" как "original image", а не default. В моем случае он будет отображаться после запуска. Это может сработать. @jcpennypincher  введите описание изображения здесь

Ответ 5

В xcode 4.6.3 в конструкторе интерфейса есть опция для добавления изображения в элементы управления сегментами.