更改QLPreviewController背景颜色

时间:2012-06-16 11:31:56

标签: ios colors background qlpreviewcontroller

这是一个简单的问题我问你:如何更改QLPreviewController组件的背景?

我用它来呈现PDF文件,但它以滚动视图图案作为背景显示 颜色:

[UIColor scrollViewTexturedBackgroundColor]

我想更改背景颜色,但更改视图的backgroundColor属性没有帮助。

有什么想法吗?

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分: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]并优化上述代码以满足您的需求。