UIWebView pich缩放工作在iPhone 5.0模拟器上,但不能在iPhone 4.3和iPad 4.3,5.0模拟器中工作?
问题描述:
我写一个自定义视图控制器具有的WebView象下面这样:UIWebView pich缩放工作在iPhone 5.0模拟器上,但不能在iPhone 4.3和iPad 4.3,5.0模拟器中工作?
@interface WebpageController : UIViewController<UIWebViewDelegate> {
UIWebView* webView;
//....
}
,它的构造函数:
-(id)init {
if (self = [super init]) {
webView=[[UIWebView alloc]init];
webView.delegate=self;
webView.scalesPageToFit = YES;
webView.multipleTouchEnabled = YES;
//.....
}
和我有3个功能zoomin,缩小和loadHTMLString到webView的下面:
//this is load HTML String function
// param: content --> HTML conten by inside <body> </body>
-(void) loadWebViewWithContent:(NSString*) content{
NSString * header = @"<meta name='viewport' content='width=device-width;initial-scale=1.0; user-scalable= yes;'/>";
NSString * html = [NSString stringWithFormat:@"<html>
<head>%@ </head>
<body> %@ </body>
</html>",header,content];
[webView loadHTMLString:html baseURL:nil];
}
//这些是放大和缩小功能
-(void) zoomIn {
for (UIScrollView *scroll in [self.webView subviews]) {
//Set the zoom level.
if ([scroll respondsToSelector:@selector(setZoomScale:animated:)]) {
NSLog(@"set ZoomScale work");
[scroll setZoomScale:2.0f animated:YES];
NSLog(@"zoomScale of SCROLLVIEW= %f",(scroll.zoomScale));
}
}
}
-(void) zoomOut {
for (UIScrollView *scroll in [self.webView subviews]) {
//Set the zoom level.
if ([scroll respondsToSelector:@selector(setZoomScale:animated:)]) {
NSLog(@"set ZoomScale work");
[scroll setZoomScale:0.5f animated:YES];
NSLog(@"zoomScale of SCROLLVIEW= %f",(scroll.zoomScale));
}
}
}
在主UI,我设置,当上ZoomIn按钮用户抽头 - > webView的zoomIn由呼叫zoomIn函数(同样为缩小(ZoomOut))
一切正常,当我在iPhone 5.0模拟器测试(I xcode中使用4.2)。你可以捏缩放,zoomOut(也可以使用zoomIn,zoomOut按钮)。 但是,当在iPhone 4.3和iPad测试(包括4.3和5.0)--->无事发生 - >的LOG表明:
* *设置ZoomScale工作
滚动型zoomScale = 1.00; --->我还设置其他值,但始终zoomScale = 1.00 - >无变化 **
什么是错我的代码?我很困惑,请帮助我。 提前致谢。
答
更好的是你总是使用自己的“iVar名字”。
和后来的引用像self.webView。
答
这是了滚动缩放方法..
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return contentView;
}
-(void)scrollViewDidZoom:(UIScrollView *)scrllView
{
CGRect rectZoom = [self centeredFrameForScrollView:scrllView andUIView:contentView];
contentView.frame = rectZoom; //[self centeredFrameForScrollView:scrllView andUIView:contentView];
}
-(CGRect)centeredFrameForScrollView:(UIScrollView *)scroll andUIView:(UIView *)rView
{
CGSize boundsSize = scroll.bounds.size;
CGRect frameToCenter = rView.frame;
// center horizontally
if (frameToCenter.size.width < boundsSize.width)
{
frameToCenter.origin.x = (boundsSize.width - frameToCenter.size.width)/2;
}
else
{
frameToCenter.origin.x = 0;
}
// center vertically
if (frameToCenter.size.height < boundsSize.height)
{
frameToCenter.origin.y = (boundsSize.height - frameToCenter.size.height)/2;
}
else
{
frameToCenter.origin.y = 0;
}
frameToCenter = CGRectMake(frameToCenter.origin.x, frameToCenter.origin.y, frameToCenter.size.width, frameToCenter.size.height);
return frameToCenter;
}
如果没有工作让知道...