|
//
// UIBarButtonItemExt.swift
// ExtensionKit
//
// Created by FFIB on 2017/9/14.
// Copyright © 2017年 FFIB. All rights reserved.
//
import UIKit
public extension UIBarButtonItem {
convenience init(space: CGFloat) {
self.init(barButtonSystemItem: .fixedSpace, target: nil, action: nil)
self.width = space
}
convenience init(image: UIImage?, target: Any, action: Selector) {
let button = UIButton(type: .custom)
button.frame = CGRect(x: 0, y: 0, width: 36, height: 36)
button.setImage(image, for: .normal)
button.addTarget(target, action: action, for: .touchDown)
self.init(customView: button)
}
convenience init(title: String, target: Any, action: Selector) {
let button = UIButton(type: .custom)
button.frame = CGRect(x: 0, y: 0, width: 36, height: 36)
button.setTitle(title, for: .normal)
button.addTarget(target, action: action, for: .touchDown)
button.sizeToFit()
self.init(customView: button)
}
convenience init(titles: [String], btnSpace: CGFloat, target: Any, actions: [Selector]) {
let barView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 44))
var lastX: CGFloat = 0
for (title, action) in zip(titles, actions) {
let button = UIButton(type: .custom)
button.frame = CGRect(x: lastX, y: 2, width: 36, height: 36)
button.setTitle(title, for: .normal)
button.addTarget(target, action: action, for: .touchDown)
button.sizeToFit()
button.center = CGPoint(x: button.center.x, y: barView.center.y)
barView.addSubview(button)
lastX += button.width + btnSpace
}
barView.width = lastX
self.init(customView: barView)
}
convenience init(images: [UIImage?], btnSpace: CGFloat = 0, targets: [Any], actions: [Selector]) {
let barView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 36))
var lastX: CGFloat = 0
for (target, (image, action)) in zip(targets, zip(images, actions)) {
let button = UIButton(type: .custom)
button.frame = CGRect(x: lastX, y: 2, width: 36, height: 36)
button.setImage(image, for: .normal)
button.addTarget(target, action: action, for: .touchDown)
barView.addSubview(button)
lastX += button.width + btnSpace
}
barView.width = lastX - btnSpace
self.init(customView: barView)
}
}
|