2015-01-30 2 views
2

У меня есть UISegmentedControl с 2 кнопками. Я установил их фоновые изображения для .Normal, .Selected и .Highlighted. Все отлично работает в iOS 7, но почти отлично в iOS8. Когда вы используете кнопку обычно и только нажмите кнопку, которая не выбрана, все работает. Но по какой-то причине в iOS 8, когда вы нажимаете уже выбранную кнопку, вместо выбранного изображения вы получаете серый фон. Ниже приведены изображения, чтобы показать, что я имею в виду.Неверное изображение на iOS 8 Выбрано UISegmenetedControl Press

Правая сторона выбрана

Regular Tabs, with one selected

левая сторона постучала Non Selected Tab

enter image description here

Правая сторона постучала с правой стороны Selected

enter image description here

Я уже попробовал несколько вещей, как установка BackgroundColor очистить, или увидеть, если есть состояние мне не хватает, но я не могу показаться, чтобы найти решение.

Спасибо за любые предложения.

В соответствии с просьбой вот код:

self.feedTypeButton.setBackgroundImage(UIImage.imageWithColor(UIColor(hex: "#cee4ee")).resizableImageWithCapInsets(UIEdgeInsetsZero), forState: .Normal, barMetrics: .Default) 
self.feedTypeButton.setBackgroundImage(UIImage.imageWithColor(Colors.blue).resizableImageWithCapInsets(UIEdgeInsetsZero), forState: .Selected, barMetrics: .Default) 
self.feedTypeButton.setBackgroundImage(UIImage.imageWithColor(Colors.mediumBlue).resizableImageWithCapInsets(UIEdgeInsetsZero), forState: .Highlighted, barMetrics: .Default) 

var dividerImage = UIImage.imageWithColor(Colors.blue, size: CGSize(width: 1, height: 28)).resizableImageWithCapInsets(UIEdgeInsetsZero) 
self.feedTypeButton.setDividerImage(dividerImage, forLeftSegmentState: .Selected, rightSegmentState: .Normal, barMetrics: .Default) 
self.feedTypeButton.setDividerImage(dividerImage, forLeftSegmentState: .Normal, rightSegmentState: .Selected, barMetrics: .Default) 
self.feedTypeButton.setDividerImage(dividerImage, forLeftSegmentState: .Normal, rightSegmentState: .Normal, barMetrics: .Default) 


self.feedTypeButton.setTitleTextAttributes([ NSForegroundColorAttributeName: Colors.gray, NSFontAttributeName: UI.regularFontOfSize(13) ], forState: .Normal) 
self.feedTypeButton.setTitleTextAttributes([ NSForegroundColorAttributeName: Colors.white, NSFontAttributeName: UI.boldFontOfSize(15)], forState: .Selected) 
self.feedTypeButton.setTitleTextAttributes([ NSForegroundColorAttributeName: Colors.white ], forState: .Highlighted) 
+0

Пожалуйста, покажите нам свой код. – Christian

+0

Я также нахожу это. Вы когда-нибудь находили решение своей проблемы? – GraemeArthur

ответ

0

Причина сегмент седеют по выбору уже выбранный сегмент, потому что сегментированный контроль отсутствует состояние для выбранного и выделены одновременно.

В вашем случае, чтобы решить эту проблему просто позвоните:

self.feedTypeButton.setBackgroundImage(UIImage.imageWithColor(Colors.mediumBlue).resizableImageWithCapInsets(UIEdgeInsetsZero), forState:.Selected | .Highlighted, barMetrics: .Default) 
Смежные вопросы