gpt4 book ai didi

ios - UIWebView pich to zoom 在 iPhone 5.0 模拟器上工作但在 iPhone 4.3 和 iPad 4.3、5.0 模拟器上不起作用?

转载 作者:行者123 更新时间:2023-11-29 13:31:01 26 4
gpt4 key购买 nike

我写了一个自定义的 ViewController,它有一个像下面这样的 webview:

@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 个函数可以放大、缩小和将 HTMLString 加载到下面的 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 函数放大(与 zoomOut 相同)

当我在 iPhone 5.0 模拟器上测试时一切正常(我使用 xCode 4.2)。你可以捏放大、缩小(也可以使用放大、缩小按钮)。但是在 Iphone 4.3 和 iPad(4.3 和 5.0)上测试时 ---> 没有发生任何事情 --> 日志显示:

**设置 ZoomScale 工作

SCROLLVIEW 的 zoomScale= 1.00; ---> 我也设置了另一个值,但 zoomScale 总是 = 1.00 --> 没有变化**

我的代码有什么问题??我很困惑。请帮助我。提前致谢。

最佳答案

这是 ScrollView 缩放方法..

-(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;
}

如果不工作请告诉...

关于ios - UIWebView pich to zoom 在 iPhone 5.0 模拟器上工作但在 iPhone 4.3 和 iPad 4.3、5.0 模拟器上不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11903566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com