У меня есть панель инструментов, которая была создана на viewDidLoad поверх webkit.Когда я делаю снимок на симуляторе, отсутствует панель инструментов, чего я и хотел бы.При сборке на устройстве панель инструментов есть.
Я пытался скрыть панель инструментов с помощью:
toolbar.isHidden = true
, но приложение вылетает с панелью инструментов равной нулю.Если я изменю его на:
toolbar?.isHidden = true
Он все равно обнаруживается, считая, что все еще думает, что он равен нулю.
Панель инструментов настроена на viewDidLoad путем вызова другой функции:
var toolbar : UIToolbar!
override func viewDidLoad() {
super.viewDidLoad()
setUpToolBar()
}
func setUpToolBar() {
let saveButton = UIBarButtonItem(barButtonSystemItem: .save, target: self, action: #selector(takeScreenshot))
...
let toolbar = UIToolbar(frame: CGRect(x: 0, y: 300, width: 200, height: 50))
toolbar.setItems([saveButton,flexibleSpaceFillerLeft,userAgentButton,flexibleSpaceFillerRight,doneButton], animated: true)
view.addSubview(toolbar)
}
Код для моего снимка приведен ниже.Именно здесь я пытался скрыть панель инструментов, прежде чем делать снимок.
@objc func takeScreenshot() {
webView.takeSnapshot(with: nil, completionHandler: { (image,error) in
if let image = image {
self.screenshotOfWindow = image
self.showScreenshotEffect()
self.saveAllData()
} else {
print (error?.localizedDescription as Any)
}
})
}
Вот экран, на котором мне нужно сделать снимок экрана:
![screenshot](https://i.stack.imgur.com/dPIAv.png)
Красное поле на скриншоте - это полоса, которая мне нужна, чтобы исчезнуть со скриншота.
Я бы хотел сделать снимок экрана без нижней панели.Как было сказано ранее, это работает в симуляторе, но устройство всегда показывает полосу.В верхней части скриншота также есть пробел в «контроллере навигации», так как верхняя панель сверху покрывает часть экрана, но это просто пустое место, к которому я могу обратиться позже.