私は私のプロジェクトで、次の修正を配置することによって、再び作業ビューデバッガを得た:
#ifdef DEBUG
#import <UIKit/UIKit.h>
#import <objc/runtime.h>
@implementation UIView (FixViewDebugging)
+ (void)load
{
Method original = class_getInstanceMethod(self, @selector(viewForBaselineLayout));
class_addMethod(self, @selector(viewForFirstBaselineLayout), method_getImplementation(original), method_getTypeEncoding(original));
class_addMethod(self, @selector(viewForLastBaselineLayout), method_getImplementation(original), method_getTypeEncoding(original));
}
@end
#endif
プロジェクトのロード、load
方法は、彼らがある場合viewForBaselineLayout
実装を使用するviewForFirstBaselineLayout
とviewForLastBaselineLayout
を引き起こし、実行されます現在実装されていないので、ビューのデバッグでは、iOS8が探していた動作に味がつくようになります。
これを自分のプロジェクトに追加するには、プロジェクトに新しい空のObjective-Cファイルを作成し、その中に内容を貼り付けます。名前は任意です。私は私の "UIView + FixViewDebugging"と呼んでいます。あなたが純粋なSwiftプロジェクトにいる場合、はブリッジヘッダーを作成する必要はありません。ファイルはプロジェクトにコンパイルされ、参照する必要はありません。
これは、#ifdef DEBUG
のためにデバッグビルドでのみ機能することに注意してください。それを削除することはできますが、誤ってこれをリリースビルドにコンパイルすることができます(悪影響はありません)。この方法がこれらの行で動作しない場合は、ビルド設定> Apple LLVM - 前処理>プリプロセッサマクロ>デバッグでターゲットがDEBUG=1
であることを確認してください。
「UIWindow」とはどういう取引ですか? – holex
全く契約はありません。ユーザーインターフェイスインスペクタは単独で失敗します。 – orkenstein
私は解決策を探して、今同じ問題に直面しています – Jagie