0

そのため、 InAppBrowser-CEこのプラグインを統合することができました。このプラグインは、指定されたウィンドウ サイズから PDF を表示して透過性を与えるために驚くほど機能しますが、今は PDF を回転させる方法を見つけようとしています。回転ツール (iOS の写真ライブラリに似ています) を追加したいのですが、どこから始めればよいかわかりません。画像回転ツールについて何か見ましたが、それが PDF ファイルに適用されるかどうかはわかりませんでした。また、機能しないもの (つまり、InAppBrowser の代わりに iFrame を使用して PDF を表示する) を維持したくありません。 . 以下は、洞察を得るために 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;
4

1 に答える 1

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];

}
于 2013-09-17T14:56:38.040 に答える