Skip to content

Instantly share code, notes, and snippets.

@jonnolen
Last active December 14, 2015 12:18
Show Gist options
  • Save jonnolen/5085040 to your computer and use it in GitHub Desktop.
Save jonnolen/5085040 to your computer and use it in GitHub Desktop.
custom pspdfkit annotation demonstrating 2.8.7 hud view issue
//
// PWPDFToolbar.m
// passageways
//
// Created by Jonathan Nolen on 1/23/13.
// Copyright (c) 2013 Developertown. All rights reserved.
//
#import "PWPDFToolbar.h"
#import <PSPDFKit/PSPDFKit.h>
#import "PWToolbarTabItem.h"
@interface PWPDFToolbar()<PSPDFAnnotationToolbarDelegate>
@property (nonatomic, strong) PSPDFAnnotationToolbar *annotationToolbar;
@end
@implementation PWPDFToolbar
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
-(void)setPdfController:(PSPDFViewController *)pdfController{
_pdfController = pdfController;
self.annotationToolbar = [[PSPDFAnnotationToolbar alloc] initWithPDFController:_pdfController];
self.annotationToolbar.delegate = self;
self.annotationToolbar.barStyle = UIBarStyleBlackOpaque;
}
- (void)annotationToolbar:(PSPDFAnnotationToolbar *)annotationToolbar didChangeMode:(PSPDFAnnotationToolbarMode)newMode{
if ( newMode == PSPDFAnnotationToolbarNone){
self.pdfController.HUDViewMode = PSPDFHUDViewAutomatic;
if (self.annotationToolbar.window){
[self.annotationToolbar hideToolbarAnimated:YES completion:^{
[self.annotationToolbar removeFromSuperview];
}];
}
}
[self.highlightButton setSelected:(newMode == PSPDFAnnotationToolbarHighlight)];
[self.freeTextButton setSelected:(newMode == PSPDFAnnotationToolbarFreeText)];
[self.noteButton setSelected:(newMode == PSPDFAnnotationToolbarNote)];
[self.freehandButton setSelected:(newMode == PSPDFAnnotationToolbarDraw)];
}
- (void) setTabItems:(NSArray *)tabItems {
for (UIView* ti in _tabItems) {
[ti removeFromSuperview];
}
_tabItems = tabItems;
__block CGRect tabItemFrame = CGRectMake(0, 0, 44, 44);
[_tabItems eachWithIndex:^(PWToolbarTabItem *tabItem, NSUInteger index){
tabItem.frame = tabItemFrame;
[self.tabsContainer addSubview:tabItem];
tabItemFrame = CGRectOffset(tabItemFrame, 44, 0);
}];
}
-(IBAction)highlightPressed:(id)sender{
[self setPDFControllerHudMode];
[self.annotationToolbar highlightButtonPressed:sender];
}
-(IBAction)freeTextPressed:(id)sender{
[self setPDFControllerHudMode];
[self.annotationToolbar freeTextButtonPressed:sender];
}
-(IBAction)notePressed:(id)sender{
[self setPDFControllerHudMode];
[self.annotationToolbar noteButtonPressed:sender];
}
-(IBAction)freehandPressed:(id)sender{
[self setPDFControllerHudMode];
if (self.annotationToolbar.toolbarMode != PSPDFAnnotationToolbarDraw){
CGRect targetRect = CGRectMake(0, 0 /*CGRectGetHeight(self.bounds)*/, CGRectGetWidth(self.pdfController.view.bounds), PSPDFToolbarHeightForOrientation(self.pdfController.interfaceOrientation));
[self.pdfController.HUDView addSubview:self.annotationToolbar];
[self.annotationToolbar showToolbarInRect:targetRect animated:YES];
[self.annotationToolbar drawButtonPressed:sender];
}
else{
[self.annotationToolbar doneDrawingAnimated:YES];
}
}
-(void)setPDFControllerHudMode{
if (self.annotationToolbar.toolbarMode == PSPDFAnnotationToolbarNone){
self.pdfController.HUDViewMode = PSPDFHUDViewAlways;
}
else{
self.pdfController.HUDViewMode = PSPDFHUDViewAutomatic;
}
}
-(void)addTarget:(id)target actionForClose:(SEL)action{
[self.closeButton addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment