Ответ 1
Благодаря помощи @Fogmeister, я понял, что ширина объектов view1
и view2
, которые UIButtons
, слишком велика. Вот почему между ними произошел ненормальный промежуток. Вот мой последний код:
// Get the first button image
var view1Img:UIImage = UIImage(named: "Image1")!
// Create the first button
var view1:UIButton = UIButton(frame: CGRect(x: 0, y: 0, width: view1Img.size.width, height: view1Img.size.height))
// Get the second button image
var view2Img:UIImage = UIImage(named: "Image2")!
// Create the second button
var view2:UIButton = UIButton(frame: CGRect(x: 0, y: 0, width: view2Img.size.width, height: view2Img.size.height))
// Create two UIBarButtonItems
let item1:UIBarButtonItem = UIBarButtonItem(customView: view1)
let item2:UIBarButtonItem = UIBarButtonItem(customView: view2)
// Set 26px of fixed space between the two UIBarButtonItems
var fixedSpace:UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil)
fixedSpace.width = 26.0
// Set -7px of fixed space before the two UIBarButtonItems so that they are aligned to the edge
var negativeSpace:UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil)
negativeSpace.width = -7.0
// Add the rightBarButtonItems on the navigation bar
viewController.navigationItem.rightBarButtonItems = [negativeSpace, item2, fixedSpace, item1]
Я создаю фоновое изображение для первого UIButton
, а затем использую его размер для создания фрейма для этого UIButton
. Я выполняю те же действия для второго UIButton
. Затем я создаю UIBarButtonItems
из двух UIButtons
. После этого я создаю 26px фиксированного пространства, а затем -7.0px фиксированного пространства. Цель первого состоит в том, чтобы создать определенное пространство между двумя кнопками. Цель последнего - переместить все UIBarButtonItems
вправо. Затем я добавляю все UIBarButtonItems
как rightBarButtonItems
в определенном порядке, поэтому я получаю вид, который я хочу.
Теперь он отлично работает! Спасибо за всю помощь, Fogmeister!