これは私があなたに尋ねる簡単な質問です: QLPreviewController コンポーネントの背景を変更するにはどうすればよいですか?
PDFファイルを表示するために使用しますが、背景色としてスクロールビューパターンが表示されます:
[UIColor scrollViewTexturedBackgroundColor]
その背景色を変更したいのですが、ビューのbackgroundColor
属性を変更しても効果がありません。
何か案は?
これは私があなたに尋ねる簡単な質問です: QLPreviewController コンポーネントの背景を変更するにはどうすればよいですか?
PDFファイルを表示するために使用しますが、背景色としてスクロールビューパターンが表示されます:
[UIColor scrollViewTexturedBackgroundColor]
その背景色を変更したいのですが、ビューのbackgroundColor
属性を変更しても効果がありません。
何か案は?
私は同様の問題を抱えていて、最終的にサブクラスQLPreviewController
化してその実装に以下を追加しました:
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
//Find webview and set its subviews' background color to white
[[self.view subviews] enumerateObjectsUsingBlock:^(UIView* view, NSUInteger idx, BOOL *stop) {
[self setSubviewsBackgroundColor:view];
}];
}
と
- (void)setSubviewsBackgroundColor:(UIView*)view{
[[view subviews] enumerateObjectsUsingBlock:^(UIView* subview, NSUInteger idx, BOOL *stop) {
if ([subview isKindOfClass:[UIWebView class]]) {
[subview setBackgroundColor:[UIColor whiteColor]];
[[subview subviews] enumerateObjectsUsingBlock:^(UIView* view, NSUInteger idx, BOOL *stop) {
[view setBackgroundColor:[UIColor whiteColor]];
}];
}
else [self setSubviewsBackgroundColor:subview];
}];
}
もちろん[UIColor whiteColor]
、ニーズに合わせて上記のコードを変更および最適化することをお勧めします。
それをサブクラス化し、変更を加える必要があります。このようなもの:
.h ファイル:
#import <QuickLook/QuickLook.h>
@interface MyQLPreviewController : QLPreviewController
.m ファイル:
#import "MyQLPreviewController.h"
@implementation MyQLPreviewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor redColor]; // make the change for example
}