0
工作程序的UIWebView
我myViewController.h包含:UIActivityIndicatorView不mySubView
#import <UIKit/UIKit.h>
@interface myViewController : UIViewController {
UIScrollView *myScrollView;
UIView *mySubView;
UIWebView *myWebView;
UIActivityIndicatorView *myIndicator;
}
@property (nonatomic, retain) IBOutlet UIScrollView *myScrollView;
@end
我myViewController.m包含:
#import "myViewController.h"
@implementation myViewController
@synthesize myScrollView;
...
- (void)viewDidLoad
{
[super viewDidLoad];
NSArray *bgColors = [NSArray arrayWithObjects:[UIColor redColor], [UIColor greenColor], [UIColor blueColor], nil];
for (int i = 0; i < bgColors.count; i++)
{
CGRect frameNew;
frameNew.origin.x = self.myScrollView.frame.size.width * i;
frameNew.origin.y = 0;
frameNew.size = self.myScrollView.frame.size;
mySubView = [[UIView alloc] initWithFrame:frameNew];
mySubView.backgroundColor = [bgColors objectAtIndex:i];
[self.myScrollView addSubview:mySubView];
myIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
myIndicator.center = CGPointMake(160, 100);
myIndicator.hidesWhenStopped = NO;
CGRect webFrame = CGRectMake(self.myScrollView.frame.size.width * i, 0, 320, 320);
myWebView = [[UIWebView alloc] initWithFrame:webFrame];
[myWebView setDelegate:(id)self];
[myWebView addSubview:myIndicator];
NSString *urlAddress = @"http://www.google.com/";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[myWebView loadRequest:requestObj];
[self.myScrollView addSubview:myWebView];
[myIndicator release];
[myWebView release];
[mySubView release];
}
self.myScrollView.contentSize = CGSizeMake(self.myScrollView.frame.size.width * bgColors.count, self.myScrollView.frame.size.height);
}
-(void)webViewDidStartLoad: (UIWebView *)webView
{
NSLog(@"Web view did start loading");
[myIndicator startAnimating];
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
}
-(void)webViewDidFinishLoad: (UIWebView *)webView
{
NSLog(@"Web view did finish loading");
[myIndicator stopAnimating];
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
[myIndicator stopAnimating];
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
NSString* errorString = [NSString stringWithFormat:@"<html>%@</html>", error.localizedDescription];
[myWebView loadHTMLString:errorString baseURL:nil];
}
...
负载指示灯不myWebView
前两个mySubView
工作,仅在最后的mySubView
的myWebView
上有效。
在前两个mySubView
在myWebView
,myIndicator
显示,但不是活动的。
告诉我这是怎么回事?
而您的最后一个参考是不可靠的,因为您已经在for循环结束时发布了它。你放弃了所有权,所以它可能指向垃圾。它仍然有效,因为Web视图对象通过将对象保留为其子视图来保持对象的活性。 – 2011-05-23 07:56:45
我没有得到你。解决方案是什么?代码不适合你吗?你得到的错误是什么? – 2011-05-23 08:50:53
立即我看到你的代码..是的所有工作......非常感谢你,非常有帮助... – scazy0rg 2011-05-23 08:58:27