Some test text!
iOS / Guides / Annotation toolbar
The PTAnnotationToolbar
class is a UIToolbar
consisting of various annotation creation tools. With the annotation toolbar, users are able to conveniently create and switch between different tools.
The annotation toolbar control is part of the Tools library, so make sure you have added it to your project .
Scenario | Annotation Toolbar |
---|---|
Small devices in landscape mode + Tablet devices | |
Small devices in portrait mode |
To create and set up an annotation toolbar, initialize an AnnotationToolbar
instance and add it to your view hierarchy:
let annotationToolbar = PTAnnotationToolbar(toolManager: toolManager)
// Set the current view controller as the annotation toolbar's delegate.
annotationToolbar.delegate = self;
self.view.addSubview(annotationToolbar)
// Position annotation toolbar in superview.
annotationToolbar.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activateConstraints([
annotationToolbar.leadingAnchor.constraint(equalTo: self.view.leadingAnchor),
annotationToolbar.widthAnchor.constraint(equalTo: self.view.widthAnchor),
annotationToolbar.topAnchor.constraint(equalTo: self.view.layoutMarginsGuide.topAnchor)
])
// Hide annotation toolbar by default.
annotationToolbar.isHidden = true
Then, you need to attach a ToolManager
to the annotation toolbar so that the toolbar can change tools:
annotationToolbar.toolManager = self.toolManager
// Show the annotation toolbar.
annotationToolbar.isHidden = false
The PTAnnotationToolbar
class provides an API for specifying which tools are displayed in the toolbar when there is insufficient space to show them all. This is controlled by the
precedenceArray
property, which is an array of PTAnnotBarButton
items.
The PTAnnotationToolbarDelegate
protocol allows the adopting class (usually the containing view controller, as in this guide) to be notified of annotation toolbar events and control the behavior of the toolbar. Since this protocol also conforms to the UIToolbarDelegate
protocol, the annotation toolbar's delegate can implement the positionForBar:
method to indicate the toolbar position:
func annotationToolbarDidCancel(_ annotationToolbar: PTAnnotationToolbar) {
// Hide annotation toolbar when cancelled.
annotationToolbar.isHidden = true
}
func position(for bar: UIBarPositioning) -> UIBarPosition {
// The annotation toolbar is usually positioned at the top of its superview.
return .top;
}
By default, the annotation toolbar returns to the pan tool after an annotation is created. If you prefer to stay in the same tool mode after an annotation is created, you should implement the toolShouldGoBackToPan
method in your AnnotationToolbarDelegate
adopting class:
func toolShouldGoBack(toPan annotationToolbar: PTAnnotationToolbar) -> Bool {
return false
}
The annotation toolbar's behavior could also be handled within user settings by checking and returning the appropriate settings value in the method above.
Trial setup questions? Ask experts on Discord
Need other help? Contact Support
Pricing or product questions? Contact Sales