Customizing Color Presets on iOS

In some cases, you might want to customize the default set of color presets shown in the annotation style inspector (AnnotationStyleViewController).

The color presets are managed by the global AnnotationStyleManager object (found under SDK.shared.styleManager).

The easiest way to customize the default presets while leaving other annotation style-related functionality intact is to set the new presets using AnnotationStyleManager.

Here is an example implementation that customizes the default colors for line annotations. All we have to do is set our own array of ColorPreset objects:

let presets = [
    ColorPreset(color: UIColor.black),
    ColorPreset(color: UIColor.red),
    ColorPreset(color: UIColor.green),
    ColorPreset(color: UIColor.blue)
]
let styleManager = SDK.shared.styleManager
let key = Annotation.ToolVariantID(tool: .line)
styleManager.setPresets(presets, forKey: key, type: .colorPreset)
NSArray<PSPDFColorPreset *> *presets = @[[PSPDFColorPreset presetWithColor:UIColor.blackColor],
                                         [PSPDFColorPreset presetWithColor:UIColor.redColor],
                                         [PSPDFColorPreset presetWithColor:UIColor.greenColor],
                                         [PSPDFColorPreset presetWithColor:UIColor.blueColor]];
PSPDFDefaultAnnotationStyleManager *styleManager = (PSPDFDefaultAnnotationStyleManager *)PSPDFKitGlobal.sharedInstance.styleManager;
PSPDFAnnotationStateVariantID key = PSPDFAnnotationStateVariantIDMake(PSPDFAnnotationStringLine, nil);
[styleManager setPresets:presets forKey:key type:PSPDFAnnotationStyleTypeColorPreset];

Take a look at PresetCustomizationExample.swift in the PSPDFKit Catalog for a complete example.