UIPrintInteractionController 中的文本不可见
Text in UIPrintInteractionController is not visible
我想打印一些 PDF NSData,当我显示 UIPrintInteractionController
PDF 时正确显示,但 UIPrintInteractionController
的 UITableViewCell
上的文本和其他数据不可见。
图片:
代码:
UIPrintInteractionController *printController = [UIPrintInteractionController sharedPrintController];
printController.delegate = self;
UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.outputType = UIPrintInfoOutputGeneral;
printInfo.jobName = [self.pdfURL lastPathComponent];
printInfo.duplex = UIPrintInfoDuplexLongEdge;
printController.printInfo = printInfo;
printController.showsPageRange = YES;
printController.printingItem = self.pdfData;
void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) = ^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
if (!completed && error) {
NSLog(@"FAILED! due to error in domain %@ with error code %lu", error.domain, (long)error.code);
}
};
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
[printController presentFromBarButtonItem:sender animated:true completionHandler:completionHandler];
} else {
[printController presentAnimated:YES completionHandler:completionHandler];
}
什么会导致这样的问题,如何解决?
更新:
忽略这个问题后,我发现我的应用程序中 UITableViewCell
的任何子类都默认将 textLabel.textColor
设置为白色。而且我无法通过编程方式或在 IB 中更改它。
问题是我的 UITableViewCell
类别覆盖了 layoutSubviews
方法,例如:
- (void)layoutSubviews {
[super layoutSubviews];
// some configurations
}
去掉这个方法后,一切正常。
我想打印一些 PDF NSData,当我显示 UIPrintInteractionController
PDF 时正确显示,但 UIPrintInteractionController
的 UITableViewCell
上的文本和其他数据不可见。
图片:
代码:
UIPrintInteractionController *printController = [UIPrintInteractionController sharedPrintController];
printController.delegate = self;
UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.outputType = UIPrintInfoOutputGeneral;
printInfo.jobName = [self.pdfURL lastPathComponent];
printInfo.duplex = UIPrintInfoDuplexLongEdge;
printController.printInfo = printInfo;
printController.showsPageRange = YES;
printController.printingItem = self.pdfData;
void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) = ^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
if (!completed && error) {
NSLog(@"FAILED! due to error in domain %@ with error code %lu", error.domain, (long)error.code);
}
};
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
[printController presentFromBarButtonItem:sender animated:true completionHandler:completionHandler];
} else {
[printController presentAnimated:YES completionHandler:completionHandler];
}
什么会导致这样的问题,如何解决?
更新:
忽略这个问题后,我发现我的应用程序中 UITableViewCell
的任何子类都默认将 textLabel.textColor
设置为白色。而且我无法通过编程方式或在 IB 中更改它。
问题是我的 UITableViewCell
类别覆盖了 layoutSubviews
方法,例如:
- (void)layoutSubviews {
[super layoutSubviews];
// some configurations
}
去掉这个方法后,一切正常。