iphone UIWebView,横向,缩放!
我的应用程序中有一个UIWebView,我很难使它与横向和视口缩放同时正常工作 如果我以纵向方式加载页面,然后使用autoresize旋转手机,手机会正常工作,对设置为缩放的页面进行放大。但是,如果我在横向模式下启动webview,我必须先旋转到纵向,然后再旋转回横向以获得正确的缩放。Mobile Safari没有这个问题 例如,如果从横向模式开始在webview中加载mobile.washingtonpost.com,则文本很小。如果旋转到“纵向”,然后再旋转回“横向”,则文字会按其应有的大小变大。MobileSafari足够智能,当您在横向加载文本时,它会立即变大。我希望: 我有一个解决办法,但这是一个完全黑客,我想知道是否有更好的方法。基本上,我可以让风景有正确的缩放,但只有在加载后,通过旋转webivew的帧大小到320宽,然后回到480宽。这让我明白了,但是:A这看起来很傻,B我不能这样做,直到页面加载,这样你才能看到字体的大小 下面您可以看到一个非常简单的应用程序的代码。通过将初始方向添加到info.plist,将其设置为横向,最容易在模拟器中使用: 界面定向 UIInterfaceOrientationAndscapeRight 代码如下:iphone UIWebView,横向,缩放!,iphone,uiwebview,webview,landscape,Iphone,Uiwebview,Webview,Landscape,我的应用程序中有一个UIWebView,我很难使它与横向和视口缩放同时正常工作 如果我以纵向方式加载页面,然后使用autoresize旋转手机,手机会正常工作,对设置为缩放的页面进行放大。但是,如果我在横向模式下启动webview,我必须先旋转到纵向,然后再旋转回横向以获得正确的缩放。Mobile Safari没有这个问题 例如,如果从横向模式开始在webview中加载mobile.washingtonpost.com,则文本很小。如果旋转到“纵向”,然后再旋转回“横向”,则文字会按其应有的大小
// webviewAppDelegate.m
#import "webviewAppDelegate.h"
@implementation webviewAppDelegate
@synthesize window;
UIWebView *wv;
-(void) doWebView {
wv = [[UIWebView alloc] init];
wv.frame = CGRectMake(0,0,480,300);
[self.view addSubview:wv];
NSURLRequest *r = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://mobile.washingtonpost.com"]];
wv.delegate = self;
[wv loadRequest:r];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
// HACK
wv.frame = CGRectMake(0,0,320,300);
wv.frame = CGRectMake(0,0,480,300);
}
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// Override point for customization after application launch
[window makeKeyAndVisible];
UIView *blank = [[UIView alloc] init];
self.view = blank;
[window addSubview:self.view];
NSTimer *t = [NSTimer timerWithTimeInterval : 2.0target: selfselector: @selector(doWebView) userInfo:nil repeats: NO];
[[NSRunLoop currentRunLoop] addTimer:t forMode:NSDefaultRunLoopMode];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
returnYES;
}
- (void)dealloc {
[window release];
[super dealloc];
}
@end
--------------------------------------------------------
// webviewAppDelegate.h
#import <UIKit/UIKit.h>
@interface webviewAppDelegate : UIViewController <UIApplicationDelegate, UIWebViewDelegate> {
UIWindow *window;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@end
在webViewDidFinishLoad中或在方向更改后发送webView layoutSubviews消息是否可以修复此问题?我想我已经在我自己的应用程序中看到了您所描述的内容,但总是在我离开编译器无法深入了解行为的时候。webViewDidFinishLoad中的layoutSubivews似乎没有任何效果。很难说它在方向改变中起什么作用,但我担心当我们开始并停留在风景区时会发生什么。此外,它与webview需要适当调整大小掩码的总体问题无关:wv.autoresizingMask=UIViewAutoresizingFlexibleWidth | uiviewautoresizingflexiblewhight;使测试应用程序正确旋转。在webViewDidFinishLoad中或在方向更改后发送webView layoutSubviews消息是否可以解决此问题?我想我已经在我自己的应用程序中看到了您所描述的内容,但总是在我离开编译器无法深入了解行为的时候。webViewDidFinishLoad中的layoutSubivews似乎没有任何效果。很难说它在方向改变中起什么作用,但我担心当我们开始并停留在风景区时会发生什么。此外,它与webview需要适当调整大小掩码的总体问题无关:wv.autoresizingMask=UIViewAutoresizingFlexibleWidth | uiviewautoresizingflexiblewhight;使测试应用程序正确旋转。