我自動生成一個NSURL基於屏幕上的平移手勢的距離(長篇故事...)。無論如何,我沒有問題生成的網址。 URL動態變化,然後我有一個NSTimer重複每秒一次,它告訴UIWebView重新加載新的URL。Xcode的UIWebView不改變頁面與更改的網址
但是,雖然URL被報告發生了變化,但UIWebView將只顯示發送給它的第一個URL。我也在監控網站本身,它每秒都會收到第一個網址,而不是更新的網址。我的代碼現在很簡單,所以我不確定我做錯了什麼?任何幫助,將不勝感激。
在ViewController.h:
@property (weak, nonatomic) IBOutlet UIWebView *webView;
@property float slicenumber;
@property NSURL *dynamicUrl;
在ViewController.m:
- (void)viewDidLoad {
[super viewDidLoad];
NSString *fullURL = @"http://localhost:8080/remote/slicer/slice?view=Green&orientation=Axial&scrollTo=.50&size=native&fmt=png";
NSURL *url = [NSURL URLWithString:fullURL];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:requestObj];
[self.webView reload];
self.webView.scrollView.scrollEnabled = NO;
self.webView.scrollView.bounces = NO;
self.slicenumber=.5;
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(UpdateSlice) userInfo:nil repeats:YES];}
- (IBAction)handlePan:(UIPanGestureRecognizer *)recognizer {
CGPoint translation = [recognizer translationInView:self.view];
[recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
self.slicenumber=self.slicenumber+translation.y/350;
if (self.slicenumber<0) {
self.slicenumber=0;
}
if (self.slicenumber>1) {
self.slicenumber=1;
}
self.sliceloc.text= [NSString stringWithFormat:@"%.2f",self.slicenumber];
NSString *fullURL2 = [NSString stringWithFormat:@"http://localhost:8080/remote/slicer/slice?view=Green&orientation=Axial&scrollTo=%.2f&size=native&fmt=png",self.slicenumber];
self.dynamicUrl = [[NSURL alloc] initWithString:[fullURL2 stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
NSLog(@"urlString = %@",self.dynamicUrl);}
- (void)UpdateSlice {
[self.webView loadRequest:[NSURLRequest requestWithURL:self.dynamicUrl]];
[self.webView reload];}
非常感謝!讓我知道你是否需要其他信息。
沒有解決你的問題,但在一般注意:你不應該使用這個計時器。只需從「handlePan:」調用「updateSlices」(並且只有當slicenumber改變時) – joern