Ứng dụng của tôi bị ràng buộc khi tôi trình bày thanh trạng thái "Gọi" bằng cách nhấn Command + Y trong trình mô phỏng. Nó chỉ xảy ra lần đầu tiên nó trình bày thanh gọi. Tất cả mọi thứ trông như nó phải, nhưng các bản in log ra như sau:| - (20) - [UIInputSetContainerView ràng buộc ràng buộc khi thanh trạng thái cuộc gọi hiển thị
Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this:
(1) look at each constraint and try to figure out which you don't expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(
"<NSLayoutConstraint:0x7fb4cb9b2b60 V:|-(20)-[UIInputSetContainerView:0x7fb4cb9b1190] (Names: '|':UITextEffectsWindow:0x7fb4cba003f0)>",
"<NSLayoutConstraint:0x7fb4cb942100 'UIInputWindowController-top' V:|-(0)-[UIInputSetContainerView:0x7fb4cb9b1190] (Names: '|':UITextEffectsWindow:0x7fb4cba003f0)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7fb4cb9b2b60 V:|-(20)-[UIInputSetContainerView:0x7fb4cb9b1190] (Names: '|':UITextEffectsWindow:0x7fb4cba003f0)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
Đây là các cuộc gọi stack khi nó phá vỡ cho UIViewAlertForUnsatisfiableConstraints
:
* thread #1: tid = 0x17582f, 0x0000000109bbb4c6 UIKit`UIViewAlertForUnsatisfiableConstraints, queue = 'com.apple.main-thread', stop reason = breakpoint 3.1
frame #0: 0x0000000109bbb4c6 UIKit`UIViewAlertForUnsatisfiableConstraints
frame #1: 0x0000000109bbb8b2 UIKit`-[UIView(UIConstraintBasedLayout_EngineDelegate) engine:willBreakConstraint:dueToMutuallyExclusiveConstraints:] + 113
frame #2: 0x0000000107ea672b Foundation`-[NSISEngine handleUnsatisfiableRowWithHead:body:usingInfeasibilityHandlingBehavior:mutuallyExclusiveConstraints:] + 489
frame #3: 0x0000000107d07801 Foundation`-[NSISEngine fixUpValueRestrictionViolationsWithInfeasibilityHandlingBehavior:] + 613
frame #4: 0x0000000107d07537 Foundation`-[NSISEngine optimize] + 134
frame #5: 0x0000000107d07da4 Foundation`-[NSISEngine withBehaviors:performModifications:] + 245
frame #6: 0x0000000109bb5a4b UIKit`-[UIView(AdditionalLayoutSupport) _withAutomaticEngineOptimizationDisabledIfEngineExists:] + 58
frame #7: 0x0000000109bb658e UIKit`-[UIView(AdditionalLayoutSupport) updateConstraintsIfNeeded] + 254
frame #8: 0x0000000109ba6c46 UIKit`-[UIWindow(UIConstraintBasedLayout) updateConstraintsIfNeeded] + 108
frame #9: 0x0000000109bb72a3 UIKit`-[UIView(AdditionalLayoutSupport) _updateConstraintsAtEngineLevelIfNeeded] + 272
frame #10: 0x00000001093979b3 UIKit`-[UIView(Hierarchy) layoutBelowIfNeeded] + 845
frame #11: 0x000000010936eb8b UIKit`-[UIWindow handleStatusBarChangeFromHeight:toHeight:] + 1284
frame #12: 0x0000000109703b5b UIKit`-[UITextEffectsWindow handleStatusBarChangeFromHeight:toHeight:] + 100
* frame #13: 0x00000001093726a7 UIKit`+[UIWindow _noteStatusBarHeightChanged:oldHeight:forAutolayoutRootViewsOnly:] + 364
frame #14: 0x0000000109303a52 UIKit`-[UIApplication statusBar:willAnimateFromHeight:toHeight:duration:animation:] + 265
frame #15: 0x00000001099115bb UIKit`-[UIStatusBar _requestStyleAttributes:animationParameters:forced:] + 885
frame #16: 0x0000000109910fbf UIKit`-[UIStatusBar requestStyle:animationParameters:forced:] + 437
frame #17: 0x0000000109910d0d UIKit`-[UIStatusBar requestStyle:animated:forced:] + 90
frame #18: 0x00000001099160a6 UIKit`-[UIStatusBar statusBarServer:didReceiveStyleOverrides:] + 56
frame #19: 0x0000000109904b05 UIKit`_UIStatusBarReceivedStyleOverrides + 45
frame #20: 0x0000000109909058 UIKit`_XReceivedStyleOverrides + 33
frame #21: 0x0000000110d67fa8 AppSupport`migHelperRecievePortCallout + 208
frame #22: 0x000000010896c289 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 41
frame #23: 0x000000010896c1f9 CoreFoundation`__CFRunLoopDoSource1 + 473
frame #24: 0x0000000108961970 CoreFoundation`__CFRunLoopRun + 2272
frame #25: 0x0000000108960e08 CoreFoundation`CFRunLoopRunSpecific + 488
frame #26: 0x000000010e360ad2 GraphicsServices`GSEventRunModal + 161
frame #27: 0x00000001092f330d UIKit`UIApplicationMain + 171
frame #28: 0x00000001074e252f AppName`main(argc=1, argv=0x00007fff5872e688) + 111 at main.m:16
frame #29: 0x000000010aa6b92d libdyld.dylib`start + 1
frame #30: 0x000000010aa6b92d libdyld.dylib`start + 1
Bạn có bất cứ ý tưởng tại sao phá vỡ hạn chế? Tôi chưa thêm bất kỳ ràng buộc nào vào số UIInputSetContainerView
, UITextEffectsWindow
hoặc UIInputWindowController
.
EDIT: Câu hỏi của tôi đã được đánh dấu là một bản sao có thể, nhưng tôi KHÔNG khuyên hoặc đồng ý với the answer được cung cấp trong các other question. Nó là rất nguy hiểm để loại bỏ những hạn chế riêng của Apple, chỉ để thoát khỏi cảnh báo này. Tôi sẽ không khuyên bạn nên làm điều đó. Đó là lý do tại sao tôi cũng thấy cờ trùng lặp sai (Câu hỏi này đã được hỏi trước và đã có câu trả lời.), bởi vì câu trả lời không phải là câu trả lời tôi đang tìm kiếm.
Bạn đã thêm những hạn chế nào? Tôi nghi ngờ một ràng buộc được thêm vào lúc chạy bởi hệ thống có lẽ vì một thiết lập xây dựng giao diện. Những khó khăn mặc dù đang xung đột như bạn có thể thấy trong nhật ký – Lefteris
là có cơ hội thanh trạng thái đẩy cửa sổ xuống 20px? –
@Lefteris Tôi không thêm bất kỳ ràng buộc nào vào các chế độ xem có ràng buộc xung đột. –