QLPreviewController下部ボタンを隠す
1739 ワード
必要なのは、PDF、DOCなどのドキュメントをオンラインでプレビューし、繰り返しテストすることです.UIDocumentInteractionControllerとQLPreviewControllerではオンライン直接プレビューファイルが実現できないことが判明しました(誰かが展望通知をした場合)、折衷してファイルのダウンロードを実現し、QLPreviewControllerで開きますが、開く過程で下部にToolBarがあり、上にshareItemが存在することがわかり、それを隠そうとしました.
このtoolBarを隠すためにstackover上の文章QLPreviewController hide bottom toolbarを見つけた新規QLPreviewController 方法ですべてのtoolBarを取得し、テストは2つの である.
このtoolBarを隠すためにstackover上の文章QLPreviewController hide bottom toolbarを見つけた
-(NSArray *)findAllToolBarsFromView:(UIView *)view{
NSMutableArray * bars = [[NSMutableArray alloc]initWithCapacity:0];
for (UIView * view2 in view.subviews) {
if ([view2 isKindOfClass:[UIToolbar class]]) {
[bars addObject:view2];
}
[bars addObjectsFromArray:[self findAllToolBarsFromView:view2]];
}
return bars;
}```
* toolBars , toolbar, ‘hidden’
```-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
self.qlToolBar = [self getToolBarFromView:self.view];
self.qlToolBar.hidden = true;
if (self.qlToolBar) {
[self.qlToolBar addObserver:self forKeyPath:@"hidden" options:NSKeyValueObservingOptionPrior context:nil];
} }```
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
[self.navigationController removeObserver:self forKeyPath:@"hidden"];
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
BOOL isToolBarHidden = self.qlToolBar.hidden;
// If the ToolBar is not hidden
if (!isToolBarHidden) {
dispatch_async(dispatch_get_main_queue(), ^{
self.qlToolBar.hidden = true;
});
}
}```
toolBar