我在同一个屏幕上有一个UIWebView和一个轻扫手势。 当我正在刷卡时,我正在重新加载webview,因为如果我不这样做,则不会调用js。
重新加载只工作一次, 我无法再次刷卡 。
当我删除[self.webview reload]刷卡很好,但UIWebView保持闪烁。 它每次都跳起来! 我每次刷卡都需要打电话给js。
我试过这些:
方法1:
when loading webview: self.webview.alpha = 0; - (void)webViewDidFinishLoad:(UIWebView *)webView { [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.30]; self.webview.alpha = 1; [UIView commitAnimations]; }方法2:
- (void)webViewDidFinishLoad:(UIWebView *)webView { [self.webview setOpaque:NO]; self.webview.backgroundColor = [UIColor clearColor]; }方法3:
- (void)viewDidLoad { [super viewDidLoad]; [self.webview loadHTMLString:@"<html><body style=\"background-color:black;\"></body></html>" baseURL:nil]; [self performSelector:@selector(loadWebview) withObject:nil afterDelay:0.1]; } -(void)loadWebview { self.webview.delegate = self; self.webview.scrollView.delegate = self; self.webview.scrollView.bounces = NO; self.webview.scrollView.scrollsToTop = NO; [self.view addSubview:self.webview]; pathToHtml = [[NSBundle mainBundle] pathForResource:@"mypath" ofType:@"html"]; NSString* appHtml = [NSString stringWithContentsOfFile:pathToHtml encoding:NSUTF8StringEncoding error:nil]; NSURL *baseURL = [NSURL fileURLWithPath:pathToHtml]; [self.webview loadHTMLString:appHtml baseURL:baseURL]; }需要帮忙!
I have a UIWebView and a swipe gesture in the same screen. When I'm swiping, I am reloading the webview, because if I don't, the call to js is not being made.
The reload works only once, I am unable to swipe again.
When I removed [self.webview reload]swiping is done fine, but the UIWebView keeps flickering. It just jumps up everytime! I need to make a call to js everytime I swipe.
I tried these:
Method 1:
when loading webview: self.webview.alpha = 0; - (void)webViewDidFinishLoad:(UIWebView *)webView { [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.30]; self.webview.alpha = 1; [UIView commitAnimations]; }Method 2:
- (void)webViewDidFinishLoad:(UIWebView *)webView { [self.webview setOpaque:NO]; self.webview.backgroundColor = [UIColor clearColor]; }Method 3:
- (void)viewDidLoad { [super viewDidLoad]; [self.webview loadHTMLString:@"<html><body style=\"background-color:black;\"></body></html>" baseURL:nil]; [self performSelector:@selector(loadWebview) withObject:nil afterDelay:0.1]; } -(void)loadWebview { self.webview.delegate = self; self.webview.scrollView.delegate = self; self.webview.scrollView.bounces = NO; self.webview.scrollView.scrollsToTop = NO; [self.view addSubview:self.webview]; pathToHtml = [[NSBundle mainBundle] pathForResource:@"mypath" ofType:@"html"]; NSString* appHtml = [NSString stringWithContentsOfFile:pathToHtml encoding:NSUTF8StringEncoding error:nil]; NSURL *baseURL = [NSURL fileURLWithPath:pathToHtml]; [self.webview loadHTMLString:appHtml baseURL:baseURL]; }Need help!
最满意答案
我发现我在我的webViewDidFinishLoad有这个:
//Make the page fit to view. THIS IS BAD CGRect webviewBound = self. webview.bounds; webviewBound.size.height = self. webview.scrollView.contentSize.height; self. webview.bounds = webviewBound;所以我删除了它并添加:
[self.webview.scrollView setContentSize: CGSizeMake(self.webview.frame.size.width, self.webview.scrollView.contentSize.height)]; self.webview.scrollView.delegate = self;我在viewDidLoad添加了这个,因为我有灰色背景:
//Removes the shadow from the webview i.e., "grey background" if ([[self.webview subviews] count] > 0) { for (UIView* shadowView in [[[self.webview subviews] objectAtIndex:0] subviews]) { [shadowView setHidden:YES]; } // unhide the last view so it is visible again because it has the content [[[[[self.webview subviews] objectAtIndex:0] subviews] lastObject] setHidden:NO]; }I found out that I had this in my webViewDidFinishLoad :
//Make the page fit to view. THIS IS BAD CGRect webviewBound = self. webview.bounds; webviewBound.size.height = self. webview.scrollView.contentSize.height; self. webview.bounds = webviewBound;So I removed that and added:
[self.webview.scrollView setContentSize: CGSizeMake(self.webview.frame.size.width, self.webview.scrollView.contentSize.height)]; self.webview.scrollView.delegate = self;And I added this in viewDidLoad because I had grey background:
//Removes the shadow from the webview i.e., "grey background" if ([[self.webview subviews] count] > 0) { for (UIView* shadowView in [[[self.webview subviews] objectAtIndex:0] subviews]) { [shadowView setHidden:YES]; } // unhide the last view so it is visible again because it has the content [[[[[self.webview subviews] objectAtIndex:0] subviews] lastObject] setHidden:NO]; }更多推荐
发布评论