tôi đã trình gỡ lỗi xem hoạt động trở lại bằng cách đặt sửa chữa sau đây trong dự án của tôi:
#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
Khi tải dự án của bạn, các load
phương pháp sẽ thực hiện, gây viewForFirstBaselineLayout
và viewForLastBaselineLayout
sử dụng thực hiện viewForBaselineLayout
nếu họ hiện không được triển khai, do đó, xem gỡ lỗi được iOS8 hương vị hành vi mà nó đang tìm kiếm.
Để thêm mục này vào dự án của riêng bạn, hãy tạo tệp Mục tiêu-C trống mới trong dự án của bạn và dán nội dung vào. Bạn có thể đặt tên cho nó bất cứ điều gì bạn muốn. Tôi gọi tôi là "UIView + FixViewDebugging". Nếu bạn đang trong một dự án Swift thuần túy, bạn không cần tạo tiêu đề cầu nối. Các tập tin sẽ được biên dịch vào dự án của bạn và bạn không cần phải tham khảo nó.
Lưu ý rằng thao tác này chỉ hoạt động đối với các bản dựng lỗi do #ifdef DEBUG
. Bạn có thể loại bỏ nó nhưng sau đó bạn có thể vô tình biên dịch này vào bản phát hành bản phát hành của bạn (mặc dù nó không có tác dụng phụ bị bệnh). Nếu phương pháp này không hoạt động với những dòng này, hãy kiểm tra xem mục tiêu của bạn có DEBUG=1
trong Cài đặt xây dựng> Apple LLVM - Tiền xử lý trước> Macro tiền xử lý> Gỡ lỗi.
Nguồn
2016-04-28 22:34:03
bạn sẽ làm gì với 'UIWindow'? – holex
Không có giao dịch nào cả. Thanh tra giao diện người dùng không thành công. – orkenstein
Hiện tôi đang gặp phải vấn đề tương tự, tìm kiếm các giải pháp – Jagie