Search code examples
iosxcodeepub

How can i add Day and Night Mode to AepubReader in ios


currently iam using AepubReader for reading epub files,But i want to implement day and night mode in that?Do you know how can i implement that modes? Currently iam using following code but the problems are

1.Night mode is only effecting a particular chapter. 2.Day mode changes font the color to black.

 NSUserDefaults *userDefaults2 = [NSUserDefaults standardUserDefaults];
  [userDefaults2 setBool:NO forKey:@"cc"];
  [userDefaults2 synchronize];

  [webView setOpaque:NO];
  [webView setBackgroundColor:[UIColor blackColor]];
  //    for(int i=0;i<10;i++)
  //    {
  NSString *jsString = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('html')[0].style.webkitTextFillColor= 'white'"];

  [webView stringByEvaluatingJavaScriptFromString:jsString];
  //    }

Solution

  • This code works for me

    -(IBAction)night:(id)sender{
    
    NSUserDefaults *userDefaults2 = [NSUserDefaults standardUserDefaults];
    [userDefaults2 setBool:NO forKey:@"btnM1"];
    [userDefaults2 synchronize];
    
    [_webview setOpaque:NO];
    [_webview setBackgroundColor:[UIColor blackColor]];
    NSString *jsString = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextFillColor= 'white'"];
    [_webview stringByEvaluatingJavaScriptFromString:jsString];}
    
    -(IBAction)day:(id)sender{
    
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    [userDefaults setBool:YES forKey:@"btnM1"];
    [userDefaults synchronize];
    
    [_webview setOpaque:NO];
    [_webview setBackgroundColor:[UIColor whiteColor]];
    NSString *jsString2 = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextFillColor= 'black'"];
    [_webview stringByEvaluatingJavaScriptFromString:jsString2];}
    
    
    
    
    
    - (void)webViewDidFinishLoad:(UIWebView *)webView{
    NSUserDefaults *menuUserDefaults = [NSUserDefaults standardUserDefaults];
    
    if([menuUserDefaults boolForKey:@"btnM1"]){
        [_webview setOpaque:NO];
        [_webview setBackgroundColor:[UIColor whiteColor]];
        NSString *jsString2 = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextFillColor= 'black'"];
        [_webview stringByEvaluatingJavaScriptFromString:jsString2];
    
    }
    
    else{
        [_webview setOpaque:NO];
        [_webview setBackgroundColor:[UIColor blackColor]];
        NSString *jsString = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextFillColor= 'white'"];
        [_webview stringByEvaluatingJavaScriptFromString:jsString];
    
    }}