2013-08-26 25 views
0

所以我能够整合InAppBrowser-CE这个插件,它令人惊讶地显示PDF从指定的窗口大小,并给予透明度,但现在我想弄清楚如何旋转PDF。我想添加一个旋转工具(类似于iOS中的照片库),但不知道从哪里开始。我看到了一些关于图像旋转工具的内容,但并不确定它是否应用于PDF文件,而且我不想保留一些不起作用的东西(即使用iFrame而不是InAppBrowser来显示PDF),所以非常感谢任何帮助。这里只是一个如何调用PDF来给你一些见解的例子。旋转从InAppBrowser的PDF

这是从HTML调用它来打开:

<button onclick="window.open('http://www.free.woodworking-plans.org/images/ranch-house-7161/ranch-house-floor-plan-o.jpg','_blank','vw=685,vh=650,vx=40,vy=40');">Change my size</button> 

这里是如何的PDF打开(在Xcode CDVInAppBrowser.m)

- (void)openInInAppBrowser:(NSURL*)url withOptions:(NSString*)options 
{ 

    if (self.inAppBrowserViewController == nil) { 
     NSString* originalUA = [CDVUserAgentUtil originalUserAgent]; 
     self.inAppBrowserViewController = [[CDVInAppBrowserViewController alloc] initWithUserAgent:originalUA prevUserAgent:[self.commandDelegate userAgent]]; 
     self.inAppBrowserViewController.navigationDelegate = self; 

     if ([self.viewController conformsToProtocol:@protocol(CDVScreenOrientationDelegate)]) { 
      self.inAppBrowserViewController.orientationDelegate = (UIViewController <CDVScreenOrientationDelegate>*)self.viewController; 
     } 
    } 

    // set pointer to this viewcontroller for later use 
    iabvc = self.inAppBrowserViewController; 

    CDVInAppBrowserOptions* browserOptions = [CDVInAppBrowserOptions parseOptions:options]; 
    [self.inAppBrowserViewController showLocationBar:browserOptions.location]; 
    [self.inAppBrowserViewController showToolBar:browserOptions.toolbar]; 

....

- (id)initWithUserAgent:(NSString*)userAgent prevUserAgent:(NSString*)prevUserAgent 
{ 
    self = [super init]; 

    if (self != nil) { 
     _userAgent = userAgent; 
     _prevUserAgent = prevUserAgent; 
     _webViewDelegate = [[CDVWebViewDelegate alloc] initWithDelegate:self]; 

     [self createViews]; 
    } 

    return self; 
} 

这里是工具部分的样子,

self.toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0, (self.view.bounds.size.height - TOOLBAR_HEIGHT), self.view.bounds.size.width, TOOLBAR_HEIGHT)]; 
    self.toolbar.alpha = 1.000; 
    self.toolbar.autoresizesSubviews = YES; 
    self.toolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin; 
    self.toolbar.barStyle = UIBarStyleBlackOpaque; 
    self.toolbar.clearsContextBeforeDrawing = NO; 
    self.toolbar.clipsToBounds = NO; 
    self.toolbar.contentMode = UIViewContentModeScaleToFill; 
    self.toolbar.contentStretch = CGRectFromString(@"{{0, 0}, {1, 1}}"); 
    self.toolbar.hidden = NO; 
    self.toolbar.multipleTouchEnabled = NO; 
    self.toolbar.opaque = NO; 
    self.toolbar.userInteractionEnabled = YES; 

回答

0

我创建然后一个旋转按钮加入此下面,

.H

//header - add 'int counter' 
@interface CDVInAppBrowserViewController : UIViewController <UIWebViewDelegate>{ 
@private 
    NSString* _userAgent; 
    NSString* _prevUserAgent; 
    NSInteger _userAgentLockToken; 
    CDVWebViewDelegate* _webViewDelegate; 
    int counter; 
} 

的.m

//Add this to the top of the .m file 
#define DegreesToRadians(X) ((X) * M_PI/180.0) 

... 

//reference 
- (id)initWithUserAgent:(NSString*)userAgent prevUserAgent:(NSString*)prevUserAgent 
{ 
    counter = 0; 

... 

//create Rotate Button 
NSString* rotateString = @"Rotate"; 
self.RotateButton = [[UIBarButtonItem alloc] initWithTitle:rotateString style:UIBarButtonItemStylePlain target:self action:@selector(goRotate:)]; 
self.RotateButton.enabled = YES; 
self.RotateButton.imageInsets = UIEdgeInsetsZero; 

.... 

//action - sender 
-(IBAction)goRotate:(id)sender 
{   counter ++; float angle = (counter%3)*90; 
      [UIView beginAnimations:@"rotate" context:nil]; 
      [UIView setAnimationDuration:0.5]; 
      self.webView.transform = CGAffineTransformMakeRotation(DegreesToRadians(angle)); 
      [UIView commitAnimations]; 

}