uiwebview без конструктора интерфейса - PullRequest
1 голос
/ 30 июня 2011

Мне нужно переключить часть моего приложения: я буду реализовывать веб-представление без изображения (* viewview).

Поэтому я попытался сделать это с помощью конструктора интерфейса, но слишком много ошибокпоэтому я предпочитаю использовать код!

для изображений, я использую эти строки:

image = [UIImage imageWithData:[NSData dataWithContentsOfURL:url]];
self.imageView = [[UIImageView alloc] initWithImage:image];
imageView.frame = CGRectMake(0,64,320,367);
[self.view addSubview:imageView];
[self.imageView release];

Теперь я пытался использовать этот код, но ничего не показывалось:

@property (nonatomic, retain) IBOutlet UIWebView *webView;

...

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.fr"]]];
[self.view addSubview:webView];

Если вы знаете, как сделать .... было бы хорошо для меня,

СПАСИБО!

Ответы [ 2 ]

4 голосов
/ 30 июня 2011

Объявите в своем файле h:

UIWebView *contentWebView;  

А также скажите вашему viewController, что вы будете внедрять <UIWebViewDelegate>

В viewDidLoad Add:

    contentWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    contentWebView.delegate = self;
    contentWebView.multipleTouchEnabled = YES;
    contentWebView.scalesPageToFit = NO;    
    [self.view addSubview:contentWebView];

В dealloc не забудьте выпустить webView:

[contentWebView release];

и реализовать методы делегата:

#pragma mark -
#pragma mark WebViewDelegates

- (void)webViewDidStartLoad:(UIWebView *)webView{   


}

- (void)webViewDidFinishLoad:(UIWebView *)webView{  

}

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{

}

А также вам необходимо загрузить запрос.Вы можете сделать это в viewDidLoad после того, как добавили webView к вашему представлению:

[contentWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.apple.com/"]]];
1 голос
/ 30 июня 2011

отрегулируйте фрейм так, как вам нужно, и если вы добавите что-то вроде изображения в качестве подпредставления к веб-представлению, тогда вам нужно будет использовать функцию getsubviewtofront.

        - (void) initUIWebView {
            NSLog(@"DetailViewController->initUIWebView {");

                UIWebView *aWebView;

                    //  init and create the UIWebView
                aWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 400)];
                aWebView.autoresizesSubviews = YES;
                aWebView.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);

                    //set the web view delegates for the web view to be itself
                [aWebView setDelegate:self];

                    //Set the URL to go to for your UIWebView
                NSString *urlAddress = @”http://www.google.com”;

                    //Create a URL object.
                NSURL *url = [NSURL URLWithString:urlAddress];

                    //URL Requst Object
                NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];

                    //load the URL into the web view.
                [aWebView loadRequest:requestObj];

                    //add the web view to the content view
                [self.view addSubview:aWebView];

                [aWebView release], aWebView = nil;

            }

              - (void)viewDidLoad {

                  [self initUIWebView]; // <<<<<<<<<<<< this calls the UIWebView Function
                  [super viewDidLoad];

              }
...