Toolbar
  • March 11, 2024

Slow Animations Debug mode

If you want a Toolbar that works with the keyboard, please see here. https://github.com/1amageek/OnTheKeyboard

Installation


CocoaPods

  • Inset pod 'Toolbar' to your Podfile.
  • Run pod install

Usage


Height and Width of the Toolbar are determined automatically. Do not set frame.

Initialization.

let toolbar: Toolbar = Toolbar()

let toolbar: Toolbar = Toolbar()

lazy var camera: ToolbarItem = {
let item: ToolbarItem = ToolbarItem(image: #imageLiteral(resourceName: “camera”), target: nil, action: nil)
return item
}()

lazy var microphone: ToolbarItem = {
let item: ToolbarItem = ToolbarItem(image: #imageLiteral(resourceName: “microphone”), target: nil, action: nil)
return item
}()

lazy var picture: ToolbarItem = {
let item: ToolbarItem = ToolbarItem(image: #imageLiteral(resourceName: “picture”), target: nil, action: nil)
return item
}()

var toolbarBottomConstraint: NSLayoutConstraint?

override func loadView() {
super.loadView()
self.view.addSubview(toolbar)
self.toolbarBottomConstraint = self.toolbar.bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant: 0)
self.toolbarBottomConstraint?.isActive = true
}

override func viewDidLoad() {
super.viewDidLoad()
self.toolbar.maximumHeight = 100
self.toolbar.setItems([self.camera, self.picture, self.microphone], animated: false)
}

Hide items

func hideItems() {
self.camera.setHidden(false, animated: true)
self.microphone.setHidden(false, animated: true)
self.picture.setHidden(false, animated: true)
}

Stretchable TextView

You can control the height by setting maximumHeight.

// ViewController

override func viewDidLoad() {
super.viewDidLoad()
self.toolbar.maximumHeight = 100
let textView: UITextView = UITextView(frame: .zero)
textView.delegate = self
textView.font = UIFont.systemFont(ofSize: 14)
self.toolbar.setItems([textView], animated: false)
}

// UITextViewDelegate
func textViewDidChange(_ textView: UITextView) {
let size: CGSize = textView.sizeThatFits(textView.bounds.size)
if let constraint: NSLayoutConstraint = self.constraint {
textView.removeConstraint(constraint)
}
self.constraint = textView.heightAnchor.constraint(equalToConstant: size.height)
self.constraint?.priority = UILayoutPriorityDefaultHigh
self.constraint?.isActive = true
}

var constraint: NSLayoutConstraint?

GitHub


View Github

#autolayout #ios #swift #toolbar
YOU MIGHT ALSO LIKE...
MijickPopups Hero

  Popups Alerts Resizable Sheets Banners

SwiftUI Tooltip

This package provides you with an easy way to show tooltips over any SwiftUI view, since Apple does not provide ...

SimpleToast for SwiftUI

SimpleToast is a simple, lightweight, flexible and easy to use library to show toasts / popup notifications inside iOS or ...

SSToastMessage

Create Toast Views with Minimal Effort in SwiftUI Using SSToastMessage. SSToastMessage enables you to effortlessly add toast notifications, alerts, and ...

ToastUI

A simple way to show toast in SwiftUI   Getting Started • Documentation • Change Log