我嘗試使用給定內容計算UIWebView的大小,但不顯示視圖。我只需要知道尺寸。UIWebView:不會調用委託
我的問題:當我執行代碼時,不調用UIWebView的委託。爲什麼?
MessageSizeCaluclator.h
#import < Foundation/Foundation.h>
@class Message;
@interface MessageSizeCaluclator : NSObject <UIWebViewDelegate>
- (id)initWithMessage:(Message*)message;
- (void)saveSize;
@end
MessageSizeCaluclator.m
#import "Message.h"
#import "MessageSizeCaluclator.h"
@interface MessageSizeCaluclator() <UIWebViewDelegate>
@property (strong, nonatomic) Message* message;
@property (strong, nonatomic) UIWebView* webView;
@end
@implementation MessageSizeCaluclator
@synthesize message = _message;
@synthesize webView = _webView;
- (id)initWithMessage:(Message*)message
{
self = [super init];
if (self) {
_message = message;
// WebView
_webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)];
_webView.delegate = self;
}
return self;
}
- (void)saveSize
{
NSLog(@"%s message = %@", __PRETTY_FUNCTION__, _message.text);
[_webView loadHTMLString:[NSString stringWithFormat:@"<div style='font-family:Helvetica;font-size:13px;'>This is a test</div>", _message.text]
baseURL:nil];
}
#pragma mark - Web view delegate
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void)webViewDidStartLoad:(UIWebView *)webView
{
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"%s", __PRETTY_FUNCTION__);
}
@end
實施
MessageSizeCaluclator* messageSizeCalculator = [[MessageSizeCaluclator alloc] initWithMessage:message];
[messageSizeCalculator saveSize];
在你的代碼被調用的時候,沒有任何視圖,你沒有在viewDidLoad中做這件事的原因? – Tim 2013-04-26 14:31:06
@Tim'MessageSizeCaluclator'不是視圖控制器,它只是一個實例化Web視圖的對象。 – Caleb 2013-04-26 14:38:21
啊我的錯誤,沒有閱讀接口聲明。 – Tim 2013-04-26 15:23:29