1

現在、iamはepubファイルの読み取りにAepubReaderを使用していますが、その中に昼と夜のモードを実装したいのですが、そのモードを実装する方法を知っていますか?現在、次のコードを使用しているiamですが、問題は

1.ナイトモードは特定のチャプターにのみ影響します。2.Dayモードでは、フォントの色が黒に変わります。

 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];
  //    }
4

2 に答える 2

2

このコードは私のために働きます

-(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];

}}
于 2013-03-26T02:38:35.063 に答える
0
  • このコードは、デイ&ナイトモードでも使用できます。このコードは、必要に応じて機能する場合があります。

  • これは、に対して適切に機能しUIWebViewます。

コードは次のとおりです。

BOOL isNightMode;

- (IBAction)nightModeBtn_click:(id)sender {
    isNightMode = YES;
    [self.webView reload];
}
- (IBAction)dayModeBtn_click:(id)sender {
    isNightMode = NO;
    [self.webView reload];
}

- (void)webViewDidFinishLoad:(UIWebView *)_webView{
  if(isNightMode == YES){
    [self.webView setOpaque:NO];
    NSString *setJavaScript = [[NSString alloc] initWithFormat:@" document.getElementsByTagName('body')[0].style.webkitFilter='grayscale(100%%)';document.getElementsByTagName('div')[0].style.webkitFilter='grayscale(100%%)'; DOMReady();"];
    [self.webView stringByEvaluatingJavaScriptFromString:setJavaScript];
  }
}
于 2017-10-31T10:11:30.483 に答える