No Description

UIBarButtonItemExt.swift 2.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. //
  2. // UIBarButtonItemExt.swift
  3. // PaiaiUIKit
  4. //
  5. // Created by FFIB on 2017/9/14.
  6. // Copyright © 2017年 FFIB. All rights reserved.
  7. //
  8. import UIKit
  9. public extension UIBarButtonItem {
  10. convenience init(space: CGFloat) {
  11. self.init(barButtonSystemItem: .fixedSpace, target: nil, action: nil)
  12. self.width = space
  13. }
  14. convenience init(image: UIImage?, target: Any, action: Selector) {
  15. let button = UIButton(type: .custom)
  16. button.frame = CGRect(x: 0, y: 0, width: 36, height: 36)
  17. button.setImage(image, for: .normal)
  18. button.addTarget(target, action: action, for: .touchDown)
  19. self.init(customView: button)
  20. }
  21. convenience init(title: String, target: Any, action: Selector) {
  22. let button = UIButton(type: .custom)
  23. button.frame = CGRect(x: 0, y: 0, width: 36, height: 36)
  24. button.setTitle(title, for: .normal)
  25. button.addTarget(target, action: action, for: .touchDown)
  26. button.sizeToFit()
  27. self.init(customView: button)
  28. }
  29. convenience init(titles: [String], btnSpace: CGFloat, target: Any, actions: [Selector]) {
  30. let barView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 36))
  31. var lastX: CGFloat = 0
  32. for (title, action) in zip(titles, actions) {
  33. let button = UIButton(type: .custom)
  34. button.frame = CGRect(x: lastX, y: 2, width: 36, height: 36)
  35. button.setTitle(title, for: .normal)
  36. button.addTarget(target, action: action, for: .touchDown)
  37. button.sizeToFit()
  38. button.center = CGPoint(x: button.center.x, y: barView.center.y)
  39. barView.addSubview(button)
  40. lastX += button.width + btnSpace
  41. }
  42. barView.width = lastX
  43. self.init(customView: barView)
  44. }
  45. convenience init(images: [UIImage?], btnSpace: CGFloat = 0, targets: [Any], actions: [Selector]) {
  46. let barView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 36))
  47. var lastX: CGFloat = 0
  48. for (target, (image, action)) in zip(targets, zip(images, actions)) {
  49. let button = UIButton(type: .custom)
  50. button.frame = CGRect(x: lastX, y: 0, width: 36, height: 36)
  51. button.setImage(image, for: .normal)
  52. button.addTarget(target, action: action, for: .touchDown)
  53. barView.addSubview(button)
  54. lastX += button.width + btnSpace
  55. }
  56. barView.width = lastX - btnSpace
  57. self.init(customView: barView)
  58. }
  59. }