0

これは私があなたに尋ねる簡単な質問です: QLPreviewController コンポーネントの背景を変更するにはどうすればよいですか?

PDFファイルを表示するために使用しますが、背景色としてスクロールビューパターンが表示されます:

[UIColor scrollViewTexturedBackgroundColor]

その背景色を変更したいのですが、ビューのbackgroundColor属性を変更しても効果がありません。

何か案は?

4

2 に答える 2

0

私は同様の問題を抱えていて、最終的にサブクラス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]、ニーズに合わせて上記のコードを変更および最適化することをお勧めします。

于 2012-09-01T20:46:57.520 に答える
0

それをサブクラス化し、変更を加える必要があります。このようなもの:

.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
}
于 2012-06-16T11:58:42.407 に答える