Nếu bạn cần để hiển thị một danh hiệu khác ngoài các lastPathComponent từ url của bạn, bạn có thể phân lớp QLPreviewItem và cung cấp tiêu đề của riêng bạn thực hiện bất động sản bắt buộc:
Instance Tuyên bố tài sản:
var previewItemTitle: String? { get }
Tiêu đề để hiển thị cho mục xem trước.
Nếu bạn không thực hiện một phương thức getter cho thuộc tính này, hoặc nếu phương pháp lợi nhuận của bạn Nil, QuickLook xem xét các URL hoặc nội dung của mục được xem trước để xác định một tiêu đề thích hợp để trưng bày cho người dùng . Trả lại giá trị không phải là số không cho thuộc tính này để cung cấp tiêu đề tùy chỉnh .
protocol QLPreviewItem : NSObjectProtocol
giao thức Mô tả
Các QLPreviewItem định nghĩa các thuộc tính bạn thực hiện để làm cho nội dung ứng dụng của bạn có thể nhìn thấy trong một bản xem trước QuickLook (QLPreviewController trong iOS hoặc QLPreviewPanel trong hệ điều hành MacOS). Các phương thức trong giao thức này cũng được khai báo là một thể loại trên lớp NSURL. Kết quả là, bạn có thể sử dụng các đối tượng NSURL trực tiếp dưới dạng xem trước mục — miễn là bạn muốn sử dụng tiêu đề mặc định của các mục đó. Tiêu đề mặc định là thành phần đường dẫn cuối cùng của URL của một mục. Nếu bạn muốn cung cấp tiêu đề mục xem trước của riêng bạn, hãy tạo bản xem trước của riêng bạn đối tượng mục chấp nhận giao thức này.
Đầu tiên Subclass QLPreviewItem:
import UIKit
import QuickLook
class PreviewItem: NSObject, QLPreviewItem {
var previewItemURL: URL?
var previewItemTitle: String?
}
Sau đó, trong bộ điều khiển của bạn, bạn trả lại QLPreviewItem thay vì URL:
import UIKit
import QuickLook
class ViewController: UIViewController, QLPreviewControllerDelegate, QLPreviewControllerDataSource {
let item = PreviewItem()
override func viewDidLoad() {
super.viewDidLoad()
item.previewItemTitle = "Custom Title"
item.previewItemURL = Bundle.main.url(forResource: "your file", withExtension: "ext")
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
quickLook()
}
func numberOfPreviewItems(in controller: QLPreviewController) -> Int {
return 1
}
func quickLook() {
let preview = QLPreviewController()
preview.delegate = self
preview.dataSource = self
preview.currentPreviewItemIndex = 0
present(preview, animated: true)
}
func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {
return item
}
}
Nguồn
2017-03-27 22:47:27
Làm thế nào tôi có thể đổi tên các url mà không cần đổi tên các tập tin? – derdida