3

我有一个带有几个按钮的简单笔尖UIWebView,我想在上面显示一些 HTML。我想UIWebView 根据 HTML 内容更改高度。但我不能。

我的笔尖看起来像这样: 我的笔尖

我的mainViewController.h

#import <UIKit/UIKit.h>

@interface ibecViewController : UIViewController <UIWebViewDelegate>
@property (weak, nonatomic) IBOutlet UIWebView *webV;

@end

我用过sizeToFit,但它不起作用。我的mainViewController.m

#import "ibecViewController.h"

@interface ibecViewController ()

@end

@implementation ibecViewController
@synthesize webV;

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSString *myHTML = @"<html><body><h1>Hello, world!</h1><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p><p>Hello, world</p></body></html>";
    [webV loadHTMLString:myHTML baseURL:nil];

    [webV sizeToFit];
}

- (void)viewDidUnload
{
    [self setWebV:nil];
    [super viewDidUnload];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

- (void)webViewDidStartLoad:(UIWebView *)webView
{
    NSLog(@"123");
}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSLog(@"456");
}

@end

我的第二个问题:为什么方法webViewDidStartLoadwebViewDidFinishLoad工作不起作用?尽管我已经写过我的控制器符合UIWebViewDelegate. 我是iOS新手。WebView 的高度不会改变。我的应用程序看起来像这样: 我的应用程序

4

2 回答 2

1

我找到了解决方案。在我ibecViewController.m写的方法中

- (void)viewWillAppear:(BOOL)animated
{
    [[self webV] setDelegate:self];
}

它作为代表工作。我的方法webViewDidStartLoadwebViewDidFinishLoad开始起作用了。然后我实施

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [webV sizeToFit];
}
于 2012-10-11T08:24:50.193 回答
0

回答第一个问题:

尝试使用[webV setScalesPageToFit:YES];function 而不是sizeToFit. Html 内容将自动调整为 webview 大小。我猜这个功能只存在于更高版本的ios中。

对第二个问题的回答:您必须将 webview 对象委托给 self 对象,该对象表示ibecviewcontroller在其中定义了 webview 的视图控制器 ( )。委托完成后,您可能可以使用委托功能。如果您通过 Xib 执行此操作,那么您应该将 webview 对象(在这种情况下)webV与 IB 中的 Files Owner 对象或图标连接起来。

希望有帮助..

于 2012-10-11T06:55:47.807 回答