iOS:无法在UIWebView上垂直滚动

时间:2011-10-19 19:38:46

标签: objective-c ios uiwebview

由于我发现的所有问题都是关于禁用垂直滚动,我认为我做错了所以我的UIWebView不会滚动。但我无法弄清楚为什么。以下是我的代码的一些部分:

在我的AppDelegate中:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window.rootViewController = self.viewController;
    [window addSubview:viewController.webView];
    [self.window makeKeyAndVisible];

    return YES;
}

在我的ViewController中:

- (void)viewDidLoad {
    [super viewDidLoad];
    [webView setDelegate:self];
    NSString *urlString = /* some url string */;
    NSURL *url = [NSURL URLWithString:urlString];
    NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:nil timeoutInterval:10];
    [webView loadRequest:request];      
}

我不知道是否值得一提,但放大和缩小也是禁用的。如果我尝试滚动它会滚动整个窗口而不是UIWebView。那么我做错了什么?

1 个答案:

答案 0 :(得分:1)

可以解决您问题的一些观察结果:

此代码:

self.window.rootViewController = self.viewController;
[window addSubview:viewController.webView];
[self.window makeKeyAndVisible];

有点怀疑。假设您的viewController webView已初始化并通过Interface Builder添加到viewController的{​​{1}},则应该没有理由直接将view添加为webView窗口的子视图。 webView(大概)是viewController的{​​{1}}的子视图,因此当您view viewController的{​​{1}} window时会显示rootViewController 1}}。同样,在引入rootViewController属性之前的旧版iOS中,这可能看起来像这样:

[window addSubview:viewController.view];
[window makeKeyAndVisible];

或者在较新的iOS版本中:

window.rootViewController = self.viewController;
[window makeKeyAndVisible];

其次,关于缩放问题,您可能将UIWebView属性scalesPageToFit设置为NO(默认设置。)如果您希望允许缩放,请确保将此属性设置为{ {1}}。

我希望这有帮助,

萨姆