感謝@ Fogmeister的幫助,我發現view1
和view2
對象的寬度太大,它們是UIButtons
。這就是爲什麼它們之間存在不正常的間距。這是我的最終代碼:
// Get the first button's 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's 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
執行相同的操作。然後,我從兩個UIButtons
創建UIBarButtonItems
。之後,我創建了26px的固定空間,然後創建了-7.0px的固定空間。前者的目的是在兩個按鈕之間創建一定的空間。後者的目的是將所有UIBarButtonItems
移到右側。然後,我將所有UIBarButtonItems
作爲rightBarButtonItems
以特定的順序添加,以便獲得我想要的外觀。
現在效果很好!感謝所有的幫助,Fogmeister!
感謝您的迴應,Fogmeister!我已經看過其他關於這個問題的SO問題,推薦的解決方案是在兩個UIBarButtonItems之間添加負的固定間距以縮小它們之間的差距。我的目標是減少項目1和項目2之間的填充,但沒有任何我在網上找到的幫助。 – Alexander 2014-10-28 17:37:40
如果您根本不添加固定寬度的空間,會發生什麼情況?只需添加button1和button2即可。 – Fogmeister 2014-10-28 17:39:57
如果我根本不添加固定寬度的空間,則兩個項目之間的空間太大。 – Alexander 2014-10-28 17:41:24