UIBarButtonSystemItem.FixedSpace для заполнения панели навигации не работает

Я пытаюсь добавить кнопку «Готово» на панель навигации (создан непосредственно UINavigationBar, а не с помощью контроллера). Кнопка «Готово» выглядит нормально, действие работает, но у него нет отступов от края панели навигации.

Я попытался добавить второй элемент кнопки панели с фиксированным пространством, но это не дало никакого эффекта.

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

это освободило место для 2 кнопок, но появилась только первая, а вторая на самом деле не появилась.

спасибо за вашу помощь, я прикрепил код и фотографии для справки.

введите здесь описание изображения введите здесь описание изображения

let rightButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: "doneAction:")

let rightButtonPadding = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil)
            rightButtonPadding.width = 50

            let items = UINavigationItem()
            items.title = name.uppercaseString
            items.rightBarButtonItems = [rightButton,rightButtonPadding]
            items.hidesBackButton = true

            navBar.pushNavigationItem(items, animated: false)

person stanley    schedule 02.02.2016    source источник
comment
попробуйте изменить порядок на [rightButtonPadding, rightButton]   -  person Teja Nandamuri    schedule 02.02.2016
comment
Спасибо, это сработало.   -  person stanley    schedule 03.02.2016
comment
думаю, я должен был прочитать документацию rightBarButtonItems   -  person stanley    schedule 03.02.2016
comment
Элементы отображаются справа налево в том же порядке, в котором они появляются в массиве. Таким образом, первый элемент в массиве является самым правым элементом, а остальные элементы добавляются слева от предыдущего элемента.   -  person stanley    schedule 03.02.2016


Ответы (2)


изменить порядок на [rightButtonPadding ,rightButton]

Из документации:

«Элементы отображаются справа налево в том же порядке, в котором они появляются в массиве. Таким образом, первый элемент в массиве является самым правым элементом, а другие элементы добавляются слева от предыдущего элемента».

person Teja Nandamuri    schedule 03.02.2016

Попробуйте поиграть с UIBarButtonItemStyleDone/UIBarButtonItemStylePlain. Также проверьте эту тему: чрезмерное заполнение кнопки панели навигации iOS7

person timurbeg    schedule 02.02.2016