У меня есть пользовательский UIToolbar, созданный в Storyboard, содержащий перематывание, паузу и перемотку вперед UIBarButtonItems. Я пытаюсь заменить кнопку паузы кнопкой воспроизведения при нажатии. Мой код выглядит следующим образом:Изменение элементов UIToolbar вызывает пустую панель инструментов
@IBOutlet weak var bottomToolbar: UIToolbar!
@IBAction func playPause() {
var newButton: UIBarButtonItem
if !self.timer.valid {
let aSelector : Selector = "updateTime"
self.timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: aSelector, userInfo: nil, repeats: true)
newButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Pause, target: self, action: "playPause")
}
else {
self.timer.invalidate()
newButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Play, target: self, action: "playPause")
}
var items = self.bottomToolbar.items
items?[3] = newButton
self.bottomToolbar.setItems(items, animated: true)
}
Панель инструментов инициализирована темно-серым фоном с белыми кнопками. Однако, после попытки нажатия кнопки, вся панель инструментов становится белой. Есть идеи?
ОБНОВЛЕНИЕ 1:
Итак, после того, как вы столкнулись с цветами и перешли через код немного больше, я обнаружил, что только кнопка паузы/воспроизведения исчезает в дополнение к панели инструментов, белой. Но даже после исчезновения, щелкнув, где он должен по-прежнему посылать сигнал в ВК. И попытка сброса фона панели инструментов в темно-серый цвет не помогает.
При пошаговом через код, то, что содержимое '' детали до последней строки? Это так, как ожидалось? – Mundi
@Mundi да, насколько я могу судить, массив 'items' содержит все правильные UIBarButtonItems. Всего 7 - гибкое пространство, перемотка назад, гибкое пространство, воспроизведение/пауза, гибкое пространство, быстрая перемотка вперед и гибкое пространство. Элементы перемотки и быстрой перемотки имеют правильные действия и цель, поэтому я предполагаю, что остальная часть массива хороша. – user2624177
Хм, код на панели инструментов выглядит нормально. Вы можете попытаться отправить его 'setNeedsDisplay'. Проблема, скорее всего, будет найдена в другом месте. – Mundi