gpt4 book ai didi

iphone - 如何检测UIWebView的缩放比例

转载 作者:行者123 更新时间:2023-12-03 19:12:07 27 4
gpt4 key购买 nike

我想在用户放大时增加 UIWebView 的高度(就像 iPhone 中的默认邮件应用程序)。因此,我尝试使用下面的代码在 Web View 中查找 ScrollView ,并添加 UIScrollViewDelegate 以使用 scrollViewDidZoom 检测缩放比例,以在此方法上增加 Web View 的高度。

// MessageAppDelegate.h
@interface MessageAppDelegate : NSObject <UIApplicationDelegate,UIWebViewDelegate,UIScrollViewDelegate> {
UIWebView *webview;
UIScrollView *scrollview;
}


//MessageAppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

[self.window makeKeyAndVisible];

webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 150, 320, 100)];
webview.delegate = self;
webview.scalesPageToFit = YES;
webview.userInteractionEnabled = YES;

[webview loadHTMLString:@"<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=6.0 user-scalable=yes\">test test" baseURL:nil];

[self.window addSubview:webview];

// Find scrollview in webview
for (UIView *view in webview.subviews) {
if ([view isKindOfClass:[UIScrollView class]]) {
// Get UIScrollView object
scrollview = (UIScrollView *) view;
scrollview.delegate = self;
}
}

return YES;
}

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale{
NSLog(@"scale %f",scale);
}

- (void)scrollViewDidZoom:(UIScrollView *)scrollView{
NSLog(@"scrollViewDidZoom %f",scrollview.zoomScale);
}

问题是我无法放大/缩小 WebView 但 scrollViewDisEndZooming 方法上的 NSLog 显示

scale 1.0

当我结束缩放时和 scrollViewDidZoom 方法没有显示任何内容。我想检测 webview 的缩放比例以计算其在 scrollViewDidZoom 上的高度。

我做错了什么?请帮忙。

提前致谢。

最佳答案

我已经为你的代码做好了,请进行以下修改:

你只要得到scrollview类点,就可以得到scrollview.contentSize.width,当你放大的时候,它会改变,但是scrollview.zoomScale始终保持1。所以必须使用contensize.width来计算比例。

@interface dictViewController : UIViewController<UIWebViewDelegate,UITextFieldDelegate,UIGestureRecognizerDelegate,UIScrollViewDelegate>{

UIScrollView *scrollview;
......................

//scrollview.delegate = self;

for (UIView *view in webViewM.subviews) {
if ([view isKindOfClass:[UIScrollView class]]) {
// Get UIScrollView object
scrollview = (UIScrollView *) view;
//scrollview.delegate = self;
}
}
/*
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale{
//NSLog(@"scale zooming %f",scale);
}

- (void)scrollViewDidZoom:(UIScrollView *)scrollView{
//NSLog(@"scrollViewDidZoom %f",scrollview.zoomScale);
}*/


- (void)swipeRightAction:(id)ignored
{

NSLog(@"wid=%f", scrollview.contentSize.width);
NSLog(@"zoomscale=%f", scrollview.zoomScale);

}

关于iphone - 如何检测UIWebView的缩放比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5449744/

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