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 #inputbar #ios #swift #toolbar
YOU MIGHT ALSO LIKE...
exyte

     

camerakit-ios

CameraKit helps you add reliable camera to your app quickly. Our open source camera platform provides consistent capture results, service ...

HybridCamera

[video width="192" height="416" mp4="https://swiftgit.com/wp-content/uploads/2024/12/68747470733a2f2f7261776769742e636f6d2f7374796c656b69742f696d672f6d61737465722f7669645f6564697465645f325f326d622e676966.mp4"][/video]

TakeASelfie

An iOS framework that uses the front camera, detects your face and takes a selfie. This api opens the front ...

iOS-Depth-Sampler

Code examples of Depth APIs in iOS