2015-11-02 2 views
1

У меня есть UINavigationController, который имеет нижнюю панель, которую я установить его высота программно, как так:UINavigationController нижняя панель не сохраняет свое состояние после hideBarsOnTap

navigationController?.toolbar.frame.size.height += 43.0 
navigationController?.toolbar.frame.origin.y -= 43.0 
navigationController?.hidesBarsOnTap = true 

enter image description here

Когда я нажимаю на мой взгляд, к скрыть полоски и снова нажать, чтобы показать их, нижняя панель вернется к состоянию по умолчанию: enter image description here

Как сохранить высоту после повторного показа панели?

Большое спасибо! :)

+1

интересный вопрос, следующий. – JozeRi

ответ

1

Там нет отличного способа сделать это, но вы можете сделать что-то вроде PlaceGestureRecognizer на self.view и подсчитать количество нажатий.

Что-то вроде

var numTaps = 0 
    @IBAction func tapOnView(sender: UITapGestureRecognizer) { 
     self.numTaps++ 
     if numTaps%2==0 
     { 
      self.navigationController?.toolbar.frame.size.height += 43.0 
      self.navigationController?.toolbar.frame.origin.y -= 43.0 
     } 
    } 

    func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, 
     shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool{ 
      return true 
    } 

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

Или попробуйте один из ответов, полученных Is there a way to change the height of a UIToolbar? и подкласс UIToolbar переопределить sizeThatFits

+0

Это на самом деле хороший вариант. Но я стараюсь не слишком «хакерские» трюки. Разве не лучше, если бы я только создал свою собственную панель инструментов, независимо от того, что находится в UINavigationController, и ответить на нажатие, которое скрывает навигационную панель? – EpicSyntax

+0

Вы знаете свой прецедент лучше меня. Вы спрашиваете, каковы удобства использования панели инструментов UINavigationController? Такая же панель инструментов для нескольких uiviewcontrollers, хорошо сочетается с автоматической компоновкой, удобными функциями, такими как спрятанное на кране, и единообразным дизайном/пользовательским интерфейсом (но вам, похоже, не нравится дизайн, поскольку вы хотите сделать его выше). Так компромисс. – beyowulf

Смежные вопросы