Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 971de252bf | |||
| ef0bd6cd8a | |||
| 5f8c210c62 |
Binary file not shown.
|
Before Width: | Height: | Size: 10 MiB |
Binary file not shown.
|
Before Width: | Height: | Size: 11 MiB |
@@ -3,8 +3,8 @@
|
||||
Welcome to LocalConsole! This Swift Package makes on-device debugging easy with a convenient PiP-style console that can display items in the same way ```print()``` will in Xcode. This tool can also dynamically display view frames and restart SpringBoard right from your live app.
|
||||
|
||||
<div>
|
||||
<img src="https://github.com/duraidabdul/LocalConsole/blob/main/Additional%20Files/Demo_Pan.gif?raw=true" width="320">
|
||||
<img src="https://github.com/duraidabdul/LocalConsole/blob/main/Additional%20Files/Demo_Resize.gif?raw=true" width="320">
|
||||
<img src="https://github.com/duraidabdul/Demos/blob/main/Demo_Pan.gif?raw=true" width="320">
|
||||
<img src="https://github.com/duraidabdul/Demos/blob/main/Demo_Resize.gif?raw=true" width="320">
|
||||
</div>
|
||||
|
||||
## **Setup**
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
import UIKit
|
||||
import SwiftUI
|
||||
|
||||
var GLOBAL_DEBUG_BORDERS = false
|
||||
var GLOBAL_BORDER_TRACKERS: [BorderManager] = []
|
||||
|
||||
public class LCManager: NSObject, UIGestureRecognizerDelegate {
|
||||
@@ -194,8 +193,6 @@ public class LCManager: NSObject, UIGestureRecognizerDelegate {
|
||||
menuButton.showsMenuAsPrimaryAction = true
|
||||
consoleView.addSubview(menuButton)
|
||||
|
||||
UIView.swizzleDebugBehaviour
|
||||
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: UIResponder.keyboardWillHideNotification, object: nil)
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil)
|
||||
}
|
||||
@@ -351,7 +348,9 @@ public class LCManager: NSObject, UIGestureRecognizerDelegate {
|
||||
|
||||
private var debugBordersEnabled = false {
|
||||
didSet {
|
||||
GLOBAL_DEBUG_BORDERS = debugBordersEnabled
|
||||
|
||||
UIView.swizzleDebugBehaviour_UNTRACKABLE_TOGGLE()
|
||||
|
||||
guard debugBordersEnabled else {
|
||||
GLOBAL_BORDER_TRACKERS.forEach {
|
||||
$0.deactivate()
|
||||
@@ -687,20 +686,18 @@ public class UITapStartEndGestureRecognizer: UITapGestureRecognizer {
|
||||
// MARK: Fun hacks!
|
||||
extension UIView {
|
||||
/// Swizzle UIView to use custom frame system when needed.
|
||||
static let swizzleDebugBehaviour: Void = {
|
||||
static func swizzleDebugBehaviour_UNTRACKABLE_TOGGLE() {
|
||||
guard let originalMethod = class_getInstanceMethod(UIView.self, #selector(layoutSubviews)),
|
||||
let swizzledMethod = class_getInstanceMethod(UIView.self, #selector(swizzled_layoutSubviews)) else { return }
|
||||
method_exchangeImplementations(originalMethod, swizzledMethod)
|
||||
}()
|
||||
}
|
||||
|
||||
@objc func swizzled_layoutSubviews() {
|
||||
swizzled_layoutSubviews()
|
||||
|
||||
if GLOBAL_DEBUG_BORDERS {
|
||||
let tracker = BorderManager(view: self)
|
||||
GLOBAL_BORDER_TRACKERS.append(tracker)
|
||||
tracker.activate()
|
||||
}
|
||||
let tracker = BorderManager(view: self)
|
||||
GLOBAL_BORDER_TRACKERS.append(tracker)
|
||||
tracker.activate()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user