Xcode 9.3, Swift 4.1
Протестировано на iOS: 9, 10, 11
import UIKit
extension UIApplication {
var screenShot: UIImage? {
return keyWindow?.layer.screenShot
}
}
extension CALayer {
var screenShot: UIImage? {
let scale = UIScreen.main.scale
UIGraphicsBeginImageContextWithOptions(frame.size, false, scale)
if let context = UIGraphicsGetCurrentContext() {
render(in: context)
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return screenshot
}
return nil
}
}
imageView.image = UIApplication.shared.screenShot
Xcode 8.2.1, swift 3
import UIKit
extension UIApplication {
var screenShot: UIImage? {
if let layer = keyWindow?.layer {
let scale = UIScreen.main.scale
UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, scale);
if let context = UIGraphicsGetCurrentContext() {
layer.render(in: context)
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return screenshot
}
}
return nil
}
}
Если вы попытаетесь использовать код версии 1 в iOS 9x, у вас будет ошибка: CGImageCreateWithImageProvider: поставщик недопустимого изображения: NULL.
blockquote >import UIKit extension UIApplication { var screenShot: UIImage? { if let rootViewController = keyWindow?.rootViewController { let scale = UIScreen.main.scale let bounds = rootViewController.view.bounds UIGraphicsBeginImageContextWithOptions(bounds.size, false, scale); if let _ = UIGraphicsGetCurrentContext() { rootViewController.view.drawHierarchy(in: bounds, afterScreenUpdates: true) let screenshot = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return screenshot } } return nil } }
Использование
let screenShot = UIApplication.shared.screenShot!
Блокнот ++ только автовставит последующие отступы при ручном расположении с отступом первой строки в блоке; иначе можно повторно расположить код с отступом после факта с помощью TextFX > TextFX Edit > Reindent C++ code
.
В последней версии (по крайней мере), можно найти его через:
[ РЕДАКТИРОВАНИЕ ], Хотя, я не думаю, что это имело лучшую реализацию Автоматического отступа. Так, проверьте, чтобы удостовериться, что у Вас есть версия 5.1 - автоматический отступ недавно получил перестройку, таким образом, это автоматически корректирует Ваше расположение с отступом.
<час> Действительно также отмечают, что Вы пропускаете блок для 2-го if
:
void main(){
if(){
if() { } # here
}
}
Большинство разработчиков программ редактирования текста неправильно использует это имя (автоматический отступ). Корректное имя, "поддерживают добавление отступа". Автоматический отступ - то, что Вы на самом деле хотите, но он не реализован.
я также хотел бы видеть эту функцию в Блокноте ++.
Кажется, есть опция для автоматического форматирования XML, по крайней мере. Ее можно найти по адресу TextFX -> TextFX HTML Tidy -> Tidy: reindent XML
.