Как изменить цвет одного сегмента в сегментированном элементе управления

Я создал сегментированный элемент управления для своего приложения, состоящий из 4 сегментов. Я знаю, как изменить цвет фона для всех четырех из них, но я хочу, чтобы каждый сегмент имел свой цвет:

1-й сегмент - синий цвет фона

2-й сегмент - красный цвет фона

и т.п.

Есть ли способ добиться этого быстро?


person Arsenii Nibble    schedule 03.09.2015    source источник
comment
попробуйте вызвать этот метод func setBackgroundImage(_ backgroundImage: UIImage?, состояние forState: UIControlState, barMetrics barMetrics: UIBarMetrics), и каждый сегмент с меткой изменит этот фон   -  person Ramkumar chintala    schedule 03.09.2015
comment
@Ramkumarchintala Я новичок в Swift (начал учиться около двух недель назад), не могли бы вы рассказать подробности, пожалуйста?   -  person Arsenii Nibble    schedule 03.09.2015
comment
@Arsnii попробуй откусить ниже упомянутым способом. в противном случае возьмите панель инструментов с элементами BarButton. выглядеть как сегмент Control   -  person Ramkumar chintala    schedule 04.09.2015


Ответы (1)


Попробуйте код ниже

func getImageWithColor(color: UIColor, size: CGSize) -> UIImage {
let rect = CGRectMake(0, 0, size.width, size.height)
UIGraphicsBeginImageContextWithOptions(size, false, 0)
color.setFill()
UIRectFill(rect)
let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}

Используйте приведенный ниже метод для каждого изображения набора сегментов (вышеупомянутый метод дает изображение с цветом)

setImage(image: UIImage?, forSegmentAtIndex segment: Int) // can only have image or title, not both. must be 0..#segments - 1 (or ignored). default is nil
person Ramkumar chintala    schedule 04.09.2015