Change Spacing Between UIBarButtonItems in iOS 8
我的视图控制器上有一个
1 2 3 4 5 6 7 8 9 | // Create two UIBarButtonItems let item1:UIBarButtonItem = UIBarButtonItem(customView: view1) let item2:UIBarButtonItem = UIBarButtonItem(customView: view2) var fixedSpace:UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil) fixedSpace.width = -20.0 // Add the rightBarButtonItems on the navigation bar viewController.navigationItem.rightBarButtonItems = [item2, fixedSpace, item1] |
可以看出,我正在使用FixedSpace
任何有关如何解决此问题的见解将不胜感激!
感谢@Fogmeister的帮助,我发现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | // Get the first button's image let view1Img = UIImage(named:"Image1")! // Create the first button let view1 = UIButton(frame: CGRect(x: 0, y: 0, width: view1Img.size.width, height: view1Img.size.height)) // Get the second button's image let view2Img = UIImage(named:"Image2")! // Create the second button let view2 = UIButton(frame: CGRect(x: 0, y: 0, width: view2Img.size.width, height: view2Img.size.height)) // Create two UIBarButtonItems let item1 = UIBarButtonItem(customView: view1) let item2 = UIBarButtonItem(customView: view2) // Set 26px of fixed space between the two UIBarButtonItems let fixedSpace = UIBarButtonItem(barButtonSystemItem: .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 let negativeSpace = UIBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil) negativeSpace.width = -7.0 // Add the rightBarButtonItems on the navigation bar viewController.navigationItem.rightBarButtonItems = [negativeSpace, item2, fixedSpace, item1] |
我为第一个
现在效果很好!感谢所有帮助,Fogmeister!
另一种方法是通过更改IB中的左右图像插入。
从文档的UIBarButtonItem ...
If the value is 0.0 or negative, the item sets the width of the combined image and title to fit.
如果将宽度设置为
无论如何,您要达到负宽度是什么?我几乎可以肯定会有更好的方法。