Dol*_*lly 4 iphone zoom uiwebview uiscrollview
我希望UIWebView在用户放大时增加高度(如iPhone中的默认邮件应用程序).所以,我曾尝试下面的代码,以找到在滚动视图的WebView,并添加UIScrollViewDelegate使用scrollViewDidZoom用于检测缩放比例,以增加这种方法的WebView的高度.
// 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);
}
Run Code Online (Sandbox Code Playgroud)
问题是我无法在webview NSLog上放大/缩小,但scrollViewDisEndZooming方法显示
比例1.0
当我结束缩放和scrollViewDidZoom方法没有显示任何东西.我想检测webview的缩放比例以计算其高度scrollViewDidZoom.
我做错了什么?请帮忙.
提前致谢.
小智 5
我已经为你的代码做得很好,做了以下修改:
你只需得到scrollview类点,然后就可以得到scrollview.contentSize.width,当你放大时可以改变,但scrollview.zoomScale总是保持1.so必须使用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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6935 次 |
| 最近记录: |