3

ボタンがほとんどなく、UIWebViewHTML を表示したいシンプルなペン先があります。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

webViewDidStartLoad私の 2 番目の質問: メソッドと機能しないのはなぜwebViewDidFinishLoadですか? 私のコントローラーは に準拠していると書いていますがUIWebViewDelegate。私はiOSが初めてです。WebView の高さは変わりません。私のアプリケーションは次のようになります

4

2 に答える 2

1

私は解決策を見つけました。私のibecViewController.m中で私はメソッドを書きました

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

そして、それは代理人として機能します。私の方法webViewDidStartLoadとも機能するようにwebViewDidFinishLoadなりました。それから私は実装しました

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

最初の質問への回答:

[webV setScalesPageToFit:YES];の代わりに関数を使用してみてくださいsizeToFit。HTML コンテンツは、Web ビューのサイズに合わせて自動サイズ変更されます。この機能は、iOS の上位バージョンにしか存在しないと思います。

2 番目の質問への回答: webview オブジェクトを、ibecviewcontroller内部で webview が定義されたビュー コントローラー ( ) を表す self オブジェクトに委任する必要があります。委任が完了したら、おそらく委任関数を利用できます。Xib を介して実行している場合は、この場合webVは IB のファイル所有者オブジェクトまたはアイコンである webview オブジェクトを接続する必要があります。

それが役立つことを願っています..

于 2012-10-11T06:55:47.807 に答える