如何通过编码在视图中添加UIWebview

时间:2011-03-18 07:36:37

标签: iphone objective-c class uiview

在我的应用程序中,我从界面构建器的库中拖动了一个View,并将其链接到AppDelegate。

我的问题是“我可以在View中添加UIWebView吗?”

如果为视图创建一个特殊的类(UIView类),哪个方法的行为类似于viewDidload?

4 个答案:

答案 0 :(得分:3)

是的,您可以在View中添加UIWebView。

[UIWebView *aWebView =[[UIWebView alloc] initWithFrame:CGRectMake(x,y,width,height)]; aWebView.delegate=self; 
[self.view addSubview:aWebView]; 
[aWebView release];

在上面的代码中,您将WebView的委托设置为self。因此,您可以使用UIWebView的委托方法,如

 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
 - (void)webViewDidFinishLoad:(UIWebView *)webView

有关详细信息,请参阅此链接。

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIWebViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UIWebViewDelegate

答案 1 :(得分:1)

是的,你可以简单地使用 -

在你的h文件中添加

    @interface YourView:UIView<UIWebViewDelegate>{

在你的m文件中添加

    CGRect frame = CGRectMake(0,0,200,200);
    UIWebView *webView =[[UIWebView alloc] initWithFrame:frame)];
    webView.delegate = self;
    [self addSubview:webView];

答案 2 :(得分:1)

   CGRect  rect=CGRectMake(x,y,width,height)  ;
   UIWebView *webView1 =[[UIWebView alloc] initWithFrame:rect)];
   webView1.delegate=self;
   [self.view addSubview:webView1];
   [webView1 release];

答案 3 :(得分:0)

如果您查看的插座名为myView:

.h文件

@interface myViewController:UIViewController <UIWebViewDelegate> {
    IBOutlet UIView *myView;
}

.m文件

UIWebView *,myWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0,0,myView.frame.size.width,myView.frame.size.height)];
myWebView.delegate = self;
[myView addSubView:myWebView];

创建另一个子类来监听视图的deleagte方法并不是必要的,我现在将你的UIView视为UIWebView,因此使用UIWebView的委托方法,如下所示:

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

更多委托方法可以是found here in the documentation。如果您希望在加载UIWebView时在其他类中触发某些内容,您还可以使用NSNotificationCenter来监听自己的应用程序范围。