2016-08-22 3 views
1

Я хочу изменить высоту UIToolbar в контроллере навигации, но я не могу сделать это быстро с помощью Xcode 7.3 и iOS 9. Я попытался установить фрейм с CGRectMake в viewDidLoad, но это не сработало. Также попытался запустить пользовательский UIToolbar(), но высота осталась прежней.Как изменить высоту UIToolbar?

Edit:

Согласно одному из ответов, я попытался выбрана панель инструментов, нажмите кнопку управления и выберите панель инструментов еще раз, но то, что я получил это показано на рисунке ниже, вместо:

Screenshot

ответ

1

Вы можете использовать его с; Изменить 45 для минимальной или максимальной высоты.

override func layoutSubviews() { 
    super.layoutSubviews() 

    var frame = self.bounds 
    frame.size.height = 45 
    self.frame = frame 
} 

override func sizeThatFits(size: CGSize) -> CGSize { 
    var size = super.sizeThatFits(size) 
    size.height = 45 
    return size 
} 

Используйте его с похожим;

let navigationController = UINavigationController(navigationBarClass: nil, toolbarClass: Toolbar.self) 

Благодаря

+0

Могу я спросить, где его поставить? в UINavigationController? Этот метод не отменяет какой-либо метод из его суперкласса. – victorleungtw

+0

@victorleungtw добавлен. – SwiftDeveloper

+1

Это прекрасно работает –

0

Если вы используете автоматическую компоновку, вы можете установить ограничение по высоте в Storyboard.

Или вы можете сделать это программно, как это:

myToolbar.frame = CGRectMake(0, 50, 320, 35) 
+0

Спасибо, но я забыл упомянуть, что автоматическая компоновка отключена. – victorleungtw

2

Есть 2 варианта в зависимости от того, используется ли раскадровки или нет.

Вариант 1: Использование раскадровки

1) Перейдите на раскадровку и от выбранной панели инструментов нажмите и удерживайте Ctrl и нажмите на панели инструментов снова, как если бы вы были Назначив IBAction. Тогда вы получите следующее:

(Извините за качество первого изображения, пришлось взять оснастку с моим телефоном, потому что я не мог сделать скриншот, удерживая клавишу Ctrl)

enter image description here enter image description here

2) Затем нажмите на высоту, чтобы получить ограничение и изменить значение:

enter image description here

O ption 2: Использование Swift для, например, 55 px высота

yourToolBar.frame = CGRect(x: 0, y: view.frame.size.height - 55, width: view.frame.size.width, height: 55) 
+0

Пробовал вариант 1, но не смог открыть то же окно, что и ваш скриншот. У Mine есть только опции «Outlets», «Outlet Collection», «Reference Outlets» и «Reference Outlets Collections». Кстати, автораскладка отключена в раскадровке. – victorleungtw

+0

Также попытался вариант 2 и установить рамку в UINavigationController с сильной ссылкой @IBOutlet. Это тоже не меняется. – victorleungtw

+0

Да, если вы используете раскадровку, вам нужно использовать опцию 1. Вы уверены, что выбрали свою панель инструментов, а затем удерживая Ctrl, вы снова нажали на свою панель инструментов? Он должен показывать синюю линию с синими точками на каждом конце. Я пробовал это 1 минуту назад, и он определенно работает, если все сделано правильно - и я также использовал это в приложении до – tech4242

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