Allow set different widget layout for landscape portrait - #5693
Vladyslav-lys wants to merge 60 commits into
Conversation
…t' of https://github.com/osmandapp/OsmAnd-ios into widget_layout_warnings
Widget layout warnings
|
Code review notes (build was not run, per request):
|
| @@ -20,20 +20,38 @@ protocol MapButtonsDelegate: AnyObject { | |||
|
|
|||
| @objc(OAConfigureScreenViewController) | |||
|
|
||
| @objc(OAConfigureScreenViewController) | ||
| @objcMembers | ||
| class ConfigureScreenViewController: OABaseNavbarViewController, AppModeSelectionDelegate, WidgetStateDelegate, MapButtonsDelegate { |
There was a problem hiding this comment.
Why was the superclass changed?
There was a problem hiding this comment.
because OABaseNavbarSubviewViewController allows to insert segmented control to the needed place
| row.title = panel.title | ||
| row.iconName = panel.iconName(for: screenLayoutMode) | ||
| row.setObj(panel, forKey: "panel") | ||
| row.iconTintColor = widgetsCount == 0 ? .iconColorDefault : appMode!.getProfileColor() |
|
|
||
| let transparencyRow = widgetsSection.createNewRow() | ||
| transparencyRow.title = localizedString("map_widget_transparent") | ||
| transparencyRow.key = "map_widget_transparent" |
| import UIKit | ||
|
|
||
| final class DoubleImageHeaderCell: UITableViewCell { | ||
| @IBOutlet weak var leftBackgroundImageView: UIImageView! |
| @@ -229,6 +229,8 @@ | |||
| 274781F62DB92E3800EAE008 /* ColorsAppearanceCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 274781F52DB92E3100EAE008 /* ColorsAppearanceCategory.swift */; }; | |||
There was a problem hiding this comment.
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:0xcb2c5f1b0 UIView:0xcca3c9dc0.width == 30 (active)>",
"<NSLayoutConstraint:0xcb2c5ec10 H:|-(16)-[UIStackView:0xcca3c9500] (active, names: '|':OsmAnd_Maps.SensorTextWidget:0xcb2c25c00 )>",
"<NSLayoutConstraint:0xcb2c5ec60 UIStackView:0xcca3c9500.trailing == OsmAnd_Maps.SensorTextWidget:0xcb2c25c00.trailing - 16 (active)>",
"<NSLayoutConstraint:0xcb2c5e940 UIView:0xcca3c8c40.width == UIStackView:0xcca3c8a80.width (active)>",
"<NSLayoutConstraint:0xcb2cec140 H:|-(0)-[UIStackView:0xcca3c8a80] (active, names: '|':UIView:0xcca3c8380 )>",
"<NSLayoutConstraint:0xcb2cec190 UIStackView:0xcca3c8a80.trailing == UIView:0xcca3c8380.trailing (active)>",
"<NSLayoutConstraint:0xcb2d1a990 'UISV-alignment' OADestinationBarWidget:0xcca205180.leading == UIStackView:0xcca3c8fc0.leading (active)>",
"<NSLayoutConstraint:0xcb2c5ff70 'UISV-alignment' OADestinationBarWidget:0xcca205180.leading == UIView:0xcca3c8c40.leading (active)>",
"<NSLayoutConstraint:0xcb2ca0000 'UISV-alignment' OADestinationBarWidget:0xcca205180.trailing == UIView:0xcca3c8c40.trailing (active)>",
"<NSLayoutConstraint:0xcb2ced130 'UISV-alignment' UIStackView:0xcca3c96c0.leading == UIStackView:0xcca3c9c00.leading (active)>",
"<NSLayoutConstraint:0xcb2ced180 'UISV-alignment' UIStackView:0xcca3c96c0.trailing == UIStackView:0xcca3c9c00.trailing (active)>",
"<NSLayoutConstraint:0xcb2d1aad0 'UISV-alignment' OADestinationBarWidget:0xcca205180.trailing == UIStackView:0xcca3c8fc0.trailing (active)>",
"<NSLayoutConstraint:0xcb2cecb40 'UISV-canvas-connection' UIStackView:0xcca3c9c00.leading == UIView:0xcca3c9dc0.leading (active)>",
"<NSLayoutConstraint:0xcb2cecb90 'UISV-canvas-connection' H:[UIView:0xcca3c9f80]-(0)-| (active, names: '|':UIStackView:0xcca3c9c00 )>",
"<NSLayoutConstraint:0xcb2ced090 'UISV-canvas-connection' UIStackView:0xcca3c9500.leading == UIStackView:0xcca3c96c0.leading (active)>",
"<NSLayoutConstraint:0xcb2ced0e0 'UISV-canvas-connection' H:[UIStackView:0xcca3c96c0]-(0)-| (active, names: '|':UIStackView:0xcca3c9500 )>",
"<NSLayoutConstraint:0xcb2ceec10 'UISV-canvas-connection' UIStackView:0xcca3c8fc0.leading == OsmAnd_Maps.SensorTextWidget:0xcb2c25c00.leading (active)>",
"<NSLayoutConstraint:0xcb2ceec60 'UISV-canvas-connection' H:[OsmAnd_Maps.RulerDistanceWidget:0xcb2c47100]-(0)-| (active, names: '|':UIStackView:0xcca3c8fc0 )>",
"<NSLayoutConstraint:0xcb2ceed00 'UISV-fill-equally' OsmAnd_Maps.CurrentTimeWidget:0xcb2c46a00.width == OsmAnd_Maps.SensorTextWidget:0xcb2c25c00.width (active)>",
"<NSLayoutConstraint:0xcb2ceeda0 'UISV-fill-equally' OsmAnd_Maps.RulerDistanceWidget:0xcb2c47100.width == OsmAnd_Maps.SensorTextWidget:0xcb2c25c00.width (active)>",
"<NSLayoutConstraint:0xcb2cecbe0 'UISV-spacing' H:[UIView:0xcca3c9dc0]-(12)-[UIView:0xcca3c9f80] (active)>",
"<NSLayoutConstraint:0xcb2ceecb0 'UISV-spacing' H:[OsmAnd_Maps.SensorTextWidget:0xcb2c25c00]-(0)-[OsmAnd_Maps.CurrentTimeWidget:0xcb2c46a00] (active)>",
"<NSLayoutConstraint:0xcb2ceed50 'UISV-spacing' H:[OsmAnd_Maps.CurrentTimeWidget:0xcb2c46a00]-(0)-[OsmAnd_Maps.RulerDistanceWidget:0xcb2c47100] (active)>",
"<NSLayoutConstraint:0xcb2d1af30 'UIView-Encapsulated-Layout-Width' UIView:0xcca3c8380.width == 97.5 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcb2c5f1b0 UIView:0xcca3c9dc0.width == 30 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
| 274781F62DB92E3800EAE008 /* ColorsAppearanceCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 274781F52DB92E3100EAE008 /* ColorsAppearanceCategory.swift */; }; | ||
| 274C43F12DEDBA7100585952 /* OANextTurnWidget.xib in Resources */ = {isa = PBXBuildFile; fileRef = 274C43F02DEDBA7100585952 /* OANextTurnWidget.xib */; }; | ||
| 2753876E2ECDD0AD000CF0F3 /* VehicleAlgorithms.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2753876D2ECDD0AD000CF0F3 /* VehicleAlgorithms.swift */; }; | ||
| 27584BF6302DE44B009AC53F /* DoubleImageHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27584BF4302DE44B009AC53F /* DoubleImageHeaderCell.swift */; }; |
There was a problem hiding this comment.
Error retrieving battery status: result= 18 446 744 073 172 681 409 percent= 1 hasExternalConnected= 0 isCharging= 144 isFullyCharged= 149
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:0xcb3768550 UIView:0xcca3f2840.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37685a0 UIView:0xcca3f2a00.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37685f0 UIView:0xcca3f1f80.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3768870 UILabel:0xcb36bce00.height >= 22 (active)>",
"<NSLayoutConstraint:0xcb3768b40 UIView:0xcca3f01c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3768b90 UIView:0xcca3f0380.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3768be0 UIView:0xcca3f0000.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3768dc0 V:[UIStackView:0xcca3f2680]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca3f24c0 )>",
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:0xcb3768550 UIView:0xcca3f2840.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37685a0 UIView:0xcca3f2a00.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3768a50 UILabel:0xcb36bd880.height >= 22 (active)>",
"<NSLayoutConstraint:0xcb37689b0 UIView:0xcca3f0c40.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3768af0 UIView:0xcca3f08c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3768b90 UIView:0xcca3f0380.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3768be0 UIView:0xcca3f0000.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3768dc0 V:[UIStackView:0xcca3f2680]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca3f24c0 )>",
"<NSLayoutConstraint:0xcb3768e10 V:|-(0)-[UIStackView:0xcca3f2680] (active, names: '|':UITableViewCellContentView:0xcca3f24c0 )>",
"<NSLayoutConstraint:0xcb376a440 'UISV-alignment' UIButton:0xcca3a8f00.centerY == UIStackView:0xcca3f0a80.centerY (active)>",
"<NSLayoutConstraint:0xcb3769220 'UISV-canvas-connection' UIStackView:0xcca3f2bc0.top == UIView:0xcca3f2840.top (active)>",
"<NSLayoutConstraint:0xcb3769270 'UISV-canvas-connection' V:[UIView:0xcca3f2a00]-(0)-| (active, names: '|':UIStackView:0xcca3f2bc0 )>",
"<NSLayoutConstraint:0xcb37698b0 'UISV-canvas-connection' UIStackView:0xcca3f0a80.top == UIView:0xcca3f0c40.top (active)>",
"<NSLayoutConstraint:0xcb3769900 'UISV-canvas-connection' V:[UIView:0xcca3f08c0]-(0)-| (active, names: '|':UIStackView:0xcca3f0a80 )>",
"<NSLayoutConstraint:0xcb376a1c0 'UISV-canvas-connection' V:[_UILayoutSpacer:0xcafdbfd00'UISV-alignment-spanner']-(0)-| (active, names: '|':UIStackView:0xcca3f2140 )>",
"<NSLayoutConstraint:0xcb376a210 'UISV-canvas-connection' UIStackView:0xcca3f2140.centerY == UIButton:0xcca3a8f00.centerY (active)>",
"<NSLayoutConstraint:0xcb376a490 'UISV-canvas-connection' UIStackView:0xcca3f0540.top == UIView:0xcca3f0380.top (active)>",
"<NSLayoutConstraint:0xcb376a4e0 'UISV-canvas-connection' V:[UIView:0xcca3f0000]-(0)-| (active, names: '|':UIStackView:0xcca3f0540 )>",
"<NSLayoutConstraint:0xcb376a6c0 'UISV-canvas-connection' UIStackView:0xcca3f2680.top == UIStackView:0xcca3f2bc0.top (active)>",
"<NSLayoutConstraint:0xcb376a710 'UISV-canvas-connection' V:[UIStackView:0xcca3f0540]-(0)-| (active, names: '|':UIStackView:0xcca3f2680 )>",
"<NSLayoutConstraint:0xcb37692c0 'UISV-spacing' V:[UIView:0xcca3f2840]-(5)-[UIView:0xcca3f2a00] (active)>",
"<NSLayoutConstraint:0xcb3769950 'UISV-spacing' V:[UIView:0xcca3f0c40]-(4)-[UILabel:0xcb36bd880] (active)>",
"<NSLayoutConstraint:0xcb37699a0 'UISV-spacing' V:[UILabel:0xcb36bd880]-(4)-[UIView:0xcca3f08c0] (active)>",
"<NSLayoutConstraint:0xcb376a530 'UISV-spacing' V:[UIView:0xcca3f0380]-(5)-[UIView:0xcca3f0000] (active)>",
"<NSLayoutConstraint:0xcb376b0c0 'UISV-spacing' V:[UIStackView:0xcca3f2bc0]-(4)-[UIStackView:0xcca3f2140] (active)>",
"<NSLayoutConstraint:0xcb376b160 'UISV-spacing' V:[UIStackView:0xcca3f2140]-(4)-[UIStackView:0xcca3f0540] (active)>",
"<NSLayoutConstraint:0xcb376a120 'UISV-spanning-boundary' _UILayoutSpacer:0xcafdbfd00'UISV-alignment-spanner'.bottom >= UIStackView:0xcca3f0a80.bottom (active)>",
"<NSLayoutConstraint:0xcb376ac10 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca3f24c0.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcb3768a50 UILabel:0xcb36bd880.height >= 22 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcb3768550 UIView:0xcca3f2840.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37685a0 UIView:0xcca3f2a00.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3768780 UIImageView:0xcca55aa00.height == 30 (active)>",
"<NSLayoutConstraint:0xcb3768b90 UIView:0xcca3f0380.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3768be0 UIView:0xcca3f0000.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3768dc0 V:[UIStackView:0xcca3f2680]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca3f24c0 )>",
"<NSLayoutConstraint:0xcb3768e10 V:|-(0)-[UIStackView:0xcca3f2680] (active, names: '|':UITableViewCellContentView:0xcca3f24c0 )>",
"<NSLayoutConstraint:0xcb376a3a0 'UISV-alignment' UIButton:0xcca3a8f00.centerY == UIImageView:0xcca55aa00.centerY (active)>",
"<NSLayoutConstraint:0xcb3769220 'UISV-canvas-connection' UIStackView:0xcca3f2bc0.top == UIView:0xcca3f2840.top (active)>",
"<NSLayoutConstraint:0xcb3769270 'UISV-canvas-connection' V:[UIView:0xcca3f2a00]-(0)-| (active, names: '|':UIStackView:0xcca3f2bc0 )>",
"<NSLayoutConstraint:0xcb376a170 'UISV-canvas-connection' UIStackView:0xcca3f2140.top == _UILayoutSpacer:0xcafdbfd00'UISV-alignment-spanner'.top (active)>",
"<NSLayoutConstraint:0xcb376a210 'UISV-canvas-connection' UIStackView:0xcca3f2140.centerY == UIButton:0xcca3a8f00.centerY (active)>",
"<NSLayoutConstraint:0xcb376a490 'UISV-canvas-connection' UIStackView:0xcca3f0540.top == UIView:0xcca3f0380.top (active)>",
"<NSLayoutConstraint:0xcb376a4e0 'UISV-canvas-connection' V:[UIView:0xcca3f0000]-(0)-| (active, names: '|':UIStackView:0xcca3f0540 )>",
"<NSLayoutConstraint:0xcb376a6c0 'UISV-canvas-connection' UIStackView:0xcca3f2680.top == UIStackView:0xcca3f2bc0.top (active)>",
"<NSLayoutConstraint:0xcb376a710 'UISV-canvas-connection' V:[UIStackView:0xcca3f0540]-(0)-| (active, names: '|':UIStackView:0xcca3f2680 )>",
"<NSLayoutConstraint:0xcb37692c0 'UISV-spacing' V:[UIView:0xcca3f2840]-(5)-[UIView:0xcca3f2a00] (active)>",
"<NSLayoutConstraint:0xcb376a530 'UISV-spacing' V:[UIView:0xcca3f0380]-(5)-[UIView:0xcca3f0000] (active)>",
"<NSLayoutConstraint:0xcb376b0c0 'UISV-spacing' V:[UIStackView:0xcca3f2bc0]-(4)-[UIStackView:0xcca3f2140] (active)>",
"<NSLayoutConstraint:0xcb376b160 'UISV-spacing' V:[UIStackView:0xcca3f2140]-(4)-[UIStackView:0xcca3f0540] (active)>",
"<NSLayoutConstraint:0xcb3769f90 'UISV-spanning-boundary' _UILayoutSpacer:0xcafdbfd00'UISV-alignment-spanner'.top <= UIImageView:0xcca55aa00.top (active)>",
"<NSLayoutConstraint:0xcb376ac10 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca3f24c0.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcb3768780 UIImageView:0xcca55aa00.height == 30 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcb37686e0 UIView:0xcca27d180.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3768cd0 UIView:0xcca27cfc0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3769e50 UIView:0xcca27ce00.height == 0 (active)>",
"<NSLayoutConstraint:0xcb376a800 UILabel:0xcb36bdc00.height >= 22 (active)>",
"<NSLayoutConstraint:0xcb376b390 UIView:0xcca27e680.height == 0 (active)>",
"<NSLayoutConstraint:0xcb376b570 UIView:0xcca27e300.height == 0 (active)>",
"<NSLayoutConstraint:0xcb376b3e0 UIView:0xcca27e140.height == 0 (active)>",
"<NSLayoutConstraint:0xcb376b610 V:[UIStackView:0xcca3f16c0]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca3f1340 )>",
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:0xcb37686e0 UIView:0xcca27d180.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3768cd0 UIView:0xcca27cfc0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb376b340 UILabel:0xcb36be300.height >= 22 (active)>",
"<NSLayoutConstraint:0xcb376b250 UIView:0xcca27d500.height == 0 (active)>",
"<NSLayoutConstraint:0xcb376b2f0 UIView:0xcca27e840.height == 0 (active)>",
"<NSLayoutConstraint:0xcb376b570 UIView:0xcca27e300.height == 0 (active)>",
"<NSLayoutConstraint:0xcb376b3e0 UIView:0xcca27e140.height == 0 (active)>",
"<NSLayoutConstraint:0xcb376b610 V:[UIStackView:0xcca3f16c0]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca3f1340 )>",
"<NSLayoutConstraint:0xcb376b6b0 V:|-(0)-[UIStackView:0xcca3f16c0] (active, names: '|':UITableViewCellContentView:0xcca3f1340 )>",
"<NSLayoutConstraint:0xcb3790d20 'UISV-alignment' UIButton:0xcca3ab300.centerY == UIStackView:0xcca27d6c0.centerY (active)>",
"<NSLayoutConstraint:0xcb376bac0 'UISV-canvas-connection' UIStackView:0xcca27d340.top == UIView:0xcca27d180.top (active)>",
"<NSLayoutConstraint:0xcb376bb10 'UISV-canvas-connection' V:[UIView:0xcca27cfc0]-(0)-| (active, names: '|':UIStackView:0xcca27d340 )>",
"<NSLayoutConstraint:0xcb3790190 'UISV-canvas-connection' UIStackView:0xcca27d6c0.top == UIView:0xcca27d500.top (active)>",
"<NSLayoutConstraint:0xcb37901e0 'UISV-canvas-connection' V:[UIView:0xcca27e840]-(0)-| (active, names: '|':UIStackView:0xcca27d6c0 )>",
"<NSLayoutConstraint:0xcb3790aa0 'UISV-canvas-connection' V:[_UILayoutSpacer:0xcbe843600'UISV-alignment-spanner']-(0)-| (active, names: '|':UIStackView:0xcca27ddc0 )>",
"<NSLayoutConstraint:0xcb3790af0 'UISV-canvas-connection' UIStackView:0xcca27ddc0.centerY == UIButton:0xcca3ab300.centerY (active)>",
"<NSLayoutConstraint:0xcb3790d70 'UISV-canvas-connection' UIStackView:0xcca27e4c0.top == UIView:0xcca27e300.top (active)>",
"<NSLayoutConstraint:0xcb3790dc0 'UISV-canvas-connection' V:[UIView:0xcca27e140]-(0)-| (active, names: '|':UIStackView:0xcca27e4c0 )>",
"<NSLayoutConstraint:0xcb3790fa0 'UISV-canvas-connection' UIStackView:0xcca3f16c0.top == UIStackView:0xcca27d340.top (active)>",
"<NSLayoutConstraint:0xcb3790ff0 'UISV-canvas-connection' V:[UIStackView:0xcca27e4c0]-(0)-| (active, names: '|':UIStackView:0xcca3f16c0 )>",
"<NSLayoutConstraint:0xcb376bb60 'UISV-spacing' V:[UIView:0xcca27d180]-(5)-[UIView:0xcca27cfc0] (active)>",
"<NSLayoutConstraint:0xcb3790230 'UISV-spacing' V:[UIView:0xcca27d500]-(4)-[UILabel:0xcb36be300] (active)>",
"<NSLayoutConstraint:0xcb3790280 'UISV-spacing' V:[UILabel:0xcb36be300]-(4)-[UIView:0xcca27e840] (active)>",
"<NSLayoutConstraint:0xcb3790e10 'UISV-spacing' V:[UIView:0xcca27e300]-(5)-[UIView:0xcca27e140] (active)>",
"<NSLayoutConstraint:0xcb3791a40 'UISV-spacing' V:[UIStackView:0xcca27d340]-(4)-[UIStackView:0xcca27ddc0] (active)>",
"<NSLayoutConstraint:0xcb3791b30 'UISV-spacing' V:[UIStackView:0xcca27ddc0]-(4)-[UIStackView:0xcca27e4c0] (active)>",
"<NSLayoutConstraint:0xcb3790a00 'UISV-spanning-boundary' _UILayoutSpacer:0xcbe843600'UISV-alignment-spanner'.bottom >= UIStackView:0xcca27d6c0.bottom (active)>",
"<NSLayoutConstraint:0xcb37914f0 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca3f1340.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcb376b340 UILabel:0xcb36be300.height >= 22 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcb37686e0 UIView:0xcca27d180.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3768cd0 UIView:0xcca27cfc0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb376aee0 UIImageView:0xcca22a400.height == 30 (active)>",
"<NSLayoutConstraint:0xcb376b570 UIView:0xcca27e300.height == 0 (active)>",
"<NSLayoutConstraint:0xcb376b3e0 UIView:0xcca27e140.height == 0 (active)>",
"<NSLayoutConstraint:0xcb376b610 V:[UIStackView:0xcca3f16c0]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca3f1340 )>",
"<NSLayoutConstraint:0xcb376b6b0 V:|-(0)-[UIStackView:0xcca3f16c0] (active, names: '|':UITableViewCellContentView:0xcca3f1340 )>",
"<NSLayoutConstraint:0xcb3790c80 'UISV-alignment' UIButton:0xcca3ab300.centerY == UIImageView:0xcca22a400.centerY (active)>",
"<NSLayoutConstraint:0xcb376bac0 'UISV-canvas-connection' UIStackView:0xcca27d340.top == UIView:0xcca27d180.top (active)>",
"<NSLayoutConstraint:0xcb376bb10 'UISV-canvas-connection' V:[UIView:0xcca27cfc0]-(0)-| (active, names: '|':UIStackView:0xcca27d340 )>",
"<NSLayoutConstraint:0xcb3790a50 'UISV-canvas-connection' UIStackView:0xcca27ddc0.top == _UILayoutSpacer:0xcbe843600'UISV-alignment-spanner'.top (active)>",
"<NSLayoutConstraint:0xcb3790af0 'UISV-canvas-connection' UIStackView:0xcca27ddc0.centerY == UIButton:0xcca3ab300.centerY (active)>",
"<NSLayoutConstraint:0xcb3790d70 'UISV-canvas-connection' UIStackView:0xcca27e4c0.top == UIView:0xcca27e300.top (active)>",
"<NSLayoutConstraint:0xcb3790dc0 'UISV-canvas-connection' V:[UIView:0xcca27e140]-(0)-| (active, names: '|':UIStackView:0xcca27e4c0 )>",
"<NSLayoutConstraint:0xcb3790fa0 'UISV-canvas-connection' UIStackView:0xcca3f16c0.top == UIStackView:0xcca27d340.top (active)>",
"<NSLayoutConstraint:0xcb3790ff0 'UISV-canvas-connection' V:[UIStackView:0xcca27e4c0]-(0)-| (active, names: '|':UIStackView:0xcca3f16c0 )>",
"<NSLayoutConstraint:0xcb376bb60 'UISV-spacing' V:[UIView:0xcca27d180]-(5)-[UIView:0xcca27cfc0] (active)>",
"<NSLayoutConstraint:0xcb3790e10 'UISV-spacing' V:[UIView:0xcca27e300]-(5)-[UIView:0xcca27e140] (active)>",
"<NSLayoutConstraint:0xcb3791a40 'UISV-spacing' V:[UIStackView:0xcca27d340]-(4)-[UIStackView:0xcca27ddc0] (active)>",
"<NSLayoutConstraint:0xcb3791b30 'UISV-spacing' V:[UIStackView:0xcca27ddc0]-(4)-[UIStackView:0xcca27e4c0] (active)>",
"<NSLayoutConstraint:0xcb3790870 'UISV-spanning-boundary' _UILayoutSpacer:0xcbe843600'UISV-alignment-spanner'.top <= UIImageView:0xcca22a400.top (active)>",
"<NSLayoutConstraint:0xcb37914f0 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca3f1340.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcb376aee0 UIImageView:0xcca22a400.height == 30 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcb3790730 UIView:0xcca27f480.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3791680 UIView:0xcca288540.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3791630 UIView:0xcca288380.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37910e0 UILabel:0xcb36be680.height >= 22 (active)>",
"<NSLayoutConstraint:0xcb3791d60 UIView:0xcca26d880.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3791db0 UIView:0xcca26ea00.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3791e00 UIView:0xcca26e840.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3791fe0 V:[UIStackView:0xcca27f800]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca27fd40 )>",
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:0xcb3790730 UIView:0xcca27f480.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3791680 UIView:0xcca288540.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3791860 UIImageView:0xcca22bc00.height == 30 (active)>",
"<NSLayoutConstraint:0xcb3791db0 UIView:0xcca26ea00.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3791e00 UIView:0xcca26e840.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3791fe0 V:[UIStackView:0xcca27f800]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca27fd40 )>",
"<NSLayoutConstraint:0xcb3792030 V:|-(0)-[UIStackView:0xcca27f800] (active, names: '|':UITableViewCellContentView:0xcca27fd40 )>",
"<NSLayoutConstraint:0xcb37935c0 'UISV-alignment' UIButton:0xcca28f000.centerY == UIImageView:0xcca22bc00.centerY (active)>",
"<NSLayoutConstraint:0xcb3792440 'UISV-canvas-connection' UIStackView:0xcca27f640.top == UIView:0xcca27f480.top (active)>",
"<NSLayoutConstraint:0xcb3792490 'UISV-canvas-connection' V:[UIView:0xcca288540]-(0)-| (active, names: '|':UIStackView:0xcca27f640 )>",
"<NSLayoutConstraint:0xcb3793390 'UISV-canvas-connection' UIStackView:0xcca2881c0.top == _UILayoutSpacer:0xcbbce0400'UISV-alignment-spanner'.top (active)>",
"<NSLayoutConstraint:0xcb3793430 'UISV-canvas-connection' UIStackView:0xcca2881c0.centerY == UIButton:0xcca28f000.centerY (active)>",
"<NSLayoutConstraint:0xcb37936b0 'UISV-canvas-connection' UIStackView:0xcca26ebc0.top == UIView:0xcca26ea00.top (active)>",
"<NSLayoutConstraint:0xcb3793700 'UISV-canvas-connection' V:[UIView:0xcca26e840]-(0)-| (active, names: '|':UIStackView:0xcca26ebc0 )>",
"<NSLayoutConstraint:0xcb37938e0 'UISV-canvas-connection' UIStackView:0xcca27f800.top == UIStackView:0xcca27f640.top (active)>",
"<NSLayoutConstraint:0xcb3793930 'UISV-canvas-connection' V:[UIStackView:0xcca26ebc0]-(0)-| (active, names: '|':UIStackView:0xcca27f800 )>",
"<NSLayoutConstraint:0xcb37924e0 'UISV-spacing' V:[UIView:0xcca27f480]-(5)-[UIView:0xcca288540] (active)>",
"<NSLayoutConstraint:0xcb3793750 'UISV-spacing' V:[UIView:0xcca26ea00]-(5)-[UIView:0xcca26e840] (active)>",
"<NSLayoutConstraint:0xcb37a82d0 'UISV-spacing' V:[UIStackView:0xcca27f640]-(4)-[UIStackView:0xcca2881c0] (active)>",
"<NSLayoutConstraint:0xcb37a83c0 'UISV-spacing' V:[UIStackView:0xcca2881c0]-(4)-[UIStackView:0xcca26ebc0] (active)>",
"<NSLayoutConstraint:0xcb37931b0 'UISV-spanning-boundary' _UILayoutSpacer:0xcbbce0400'UISV-alignment-spanner'.top <= UIImageView:0xcca22bc00.top (active)>",
"<NSLayoutConstraint:0xcb3793e30 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca27fd40.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcb3791860 UIImageView:0xcca22bc00.height == 30 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcb3790730 UIView:0xcca27f480.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3791680 UIView:0xcca288540.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3791cc0 UIView:0xcca26dc00.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3791b80 UILabel:0xcb36bed80.height >= 22 (active)>",
"<NSLayoutConstraint:0xcb3791c70 UIView:0xcca26da40.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3791db0 UIView:0xcca26ea00.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3791e00 UIView:0xcca26e840.height == 0 (active)>",
"<NSLayoutConstraint:0xcb3791fe0 V:[UIStackView:0xcca27f800]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca27fd40 )>",
"<NSLayoutConstraint:0xcb3792030 V:|-(0)-[UIStackView:0xcca27f800] (active, names: '|':UITableViewCellContentView:0xcca27fd40 )>",
"<NSLayoutConstraint:0xcb3793660 'UISV-alignment' UIButton:0xcca28f000.centerY == UIStackView:0xcca26ddc0.centerY (active)>",
"<NSLayoutConstraint:0xcb3792440 'UISV-canvas-connection' UIStackView:0xcca27f640.top == UIView:0xcca27f480.top (active)>",
"<NSLayoutConstraint:0xcb3792490 'UISV-canvas-connection' V:[UIView:0xcca288540]-(0)-| (active, names: '|':UIStackView:0xcca27f640 )>",
"<NSLayoutConstraint:0xcb3792ad0 'UISV-canvas-connection' UIStackView:0xcca26ddc0.top == UIView:0xcca26dc00.top (active)>",
"<NSLayoutConstraint:0xcb3792b20 'UISV-canvas-connection' V:[UIView:0xcca26da40]-(0)-| (active, names: '|':UIStackView:0xcca26ddc0 )>",
"<NSLayoutConstraint:0xcb37933e0 'UISV-canvas-connection' V:[_UILayoutSpacer:0xcbbce0400'UISV-alignment-spanner']-(0)-| (active, names: '|':UIStackView:0xcca2881c0 )>",
"<NSLayoutConstraint:0xcb3793430 'UISV-canvas-connection' UIStackView:0xcca2881c0.centerY == UIButton:0xcca28f000.centerY (active)>",
"<NSLayoutConstraint:0xcb37936b0 'UISV-canvas-connection' UIStackView:0xcca26ebc0.top == UIView:0xcca26ea00.top (active)>",
"<NSLayoutConstraint:0xcb3793700 'UISV-canvas-connection' V:[UIView:0xcca26e840]-(0)-| (active, names: '|':UIStackView:0xcca26ebc0 )>",
"<NSLayoutConstraint:0xcb37938e0 'UISV-canvas-connection' UIStackView:0xcca27f800.top == UIStackView:0xcca27f640.top (active)>",
"<NSLayoutConstraint:0xcb3793930 'UISV-canvas-connection' V:[UIStackView:0xcca26ebc0]-(0)-| (active, names: '|':UIStackView:0xcca27f800 )>",
"<NSLayoutConstraint:0xcb37924e0 'UISV-spacing' V:[UIView:0xcca27f480]-(5)-[UIView:0xcca288540] (active)>",
"<NSLayoutConstraint:0xcb3792b70 'UISV-spacing' V:[UIView:0xcca26dc00]-(4)-[UILabel:0xcb36bed80] (active)>",
"<NSLayoutConstraint:0xcb3792bc0 'UISV-spacing' V:[UILabel:0xcb36bed80]-(4)-[UIView:0xcca26da40] (active)>",
"<NSLayoutConstraint:0xcb3793750 'UISV-spacing' V:[UIView:0xcca26ea00]-(5)-[UIView:0xcca26e840] (active)>",
"<NSLayoutConstraint:0xcb37a82d0 'UISV-spacing' V:[UIStackView:0xcca27f640]-(4)-[UIStackView:0xcca2881c0] (active)>",
"<NSLayoutConstraint:0xcb37a83c0 'UISV-spacing' V:[UIStackView:0xcca2881c0]-(4)-[UIStackView:0xcca26ebc0] (active)>",
"<NSLayoutConstraint:0xcb3793340 'UISV-spanning-boundary' _UILayoutSpacer:0xcbbce0400'UISV-alignment-spanner'.bottom >= UIStackView:0xcca26ddc0.bottom (active)>",
"<NSLayoutConstraint:0xcb3793e30 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca27fd40.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcb3791b80 UILabel:0xcb36bed80.height >= 22 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcb37a8000 UIView:0xcca436d80.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a8050 UIView:0xcca4372c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a80a0 UIView:0xcca436f40.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a85f0 UILabel:0xcb36bf100.height >= 22 (active)>",
"<NSLayoutConstraint:0xcb37a88c0 UIView:0xcca435500.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a8910 UIView:0xcca435a40.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a8960 UIView:0xcca4356c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a8b40 V:[UIStackView:0xcca436300]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca436140 )>",
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:0xcb37a8000 UIView:0xcca436d80.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a8050 UIView:0xcca4372c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a87d0 UILabel:0xcb36bf800.height >= 22 (active)>",
"<NSLayoutConstraint:0xcb37a8730 UIView:0xcca434a80.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a8870 UIView:0xcca434c40.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a8910 UIView:0xcca435a40.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a8960 UIView:0xcca4356c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a8b40 V:[UIStackView:0xcca436300]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca436140 )>",
"<NSLayoutConstraint:0xcb37a8b90 V:|-(0)-[UIStackView:0xcca436300] (active, names: '|':UITableViewCellContentView:0xcca436140 )>",
"<NSLayoutConstraint:0xcb37aa1c0 'UISV-alignment' UIButton:0xcca28ed00.centerY == UIStackView:0xcca4364c0.centerY (active)>",
"<NSLayoutConstraint:0xcb37a8fa0 'UISV-canvas-connection' UIStackView:0xcca436bc0.top == UIView:0xcca436d80.top (active)>",
"<NSLayoutConstraint:0xcb37a8ff0 'UISV-canvas-connection' V:[UIView:0xcca4372c0]-(0)-| (active, names: '|':UIStackView:0xcca436bc0 )>",
"<NSLayoutConstraint:0xcb37a9630 'UISV-canvas-connection' UIStackView:0xcca4364c0.top == UIView:0xcca434a80.top (active)>",
"<NSLayoutConstraint:0xcb37a9680 'UISV-canvas-connection' V:[UIView:0xcca434c40]-(0)-| (active, names: '|':UIStackView:0xcca4364c0 )>",
"<NSLayoutConstraint:0xcb37a9f40 'UISV-canvas-connection' V:[_UILayoutSpacer:0xcb3433c00'UISV-alignment-spanner']-(0)-| (active, names: '|':UIStackView:0xcca437100 )>",
"<NSLayoutConstraint:0xcb37a9f90 'UISV-canvas-connection' UIStackView:0xcca437100.centerY == UIButton:0xcca28ed00.centerY (active)>",
"<NSLayoutConstraint:0xcb37aa210 'UISV-canvas-connection' UIStackView:0xcca435880.top == UIView:0xcca435a40.top (active)>",
"<NSLayoutConstraint:0xcb37aa260 'UISV-canvas-connection' V:[UIView:0xcca4356c0]-(0)-| (active, names: '|':UIStackView:0xcca435880 )>",
"<NSLayoutConstraint:0xcb37aa440 'UISV-canvas-connection' UIStackView:0xcca436300.top == UIStackView:0xcca436bc0.top (active)>",
"<NSLayoutConstraint:0xcb37aa490 'UISV-canvas-connection' V:[UIStackView:0xcca435880]-(0)-| (active, names: '|':UIStackView:0xcca436300 )>",
"<NSLayoutConstraint:0xcb37a9040 'UISV-spacing' V:[UIView:0xcca436d80]-(5)-[UIView:0xcca4372c0] (active)>",
"<NSLayoutConstraint:0xcb37a96d0 'UISV-spacing' V:[UIView:0xcca434a80]-(4)-[UILabel:0xcb36bf800] (active)>",
"<NSLayoutConstraint:0xcb37a9720 'UISV-spacing' V:[UILabel:0xcb36bf800]-(4)-[UIView:0xcca434c40] (active)>",
"<NSLayoutConstraint:0xcb37aa2b0 'UISV-spacing' V:[UIView:0xcca435a40]-(5)-[UIView:0xcca4356c0] (active)>",
"<NSLayoutConstraint:0xcb37aadf0 'UISV-spacing' V:[UIStackView:0xcca436bc0]-(4)-[UIStackView:0xcca437100] (active)>",
"<NSLayoutConstraint:0xcb37aaee0 'UISV-spacing' V:[UIStackView:0xcca437100]-(4)-[UIStackView:0xcca435880] (active)>",
"<NSLayoutConstraint:0xcb37a9ea0 'UISV-spanning-boundary' _UILayoutSpacer:0xcb3433c00'UISV-alignment-spanner'.bottom >= UIStackView:0xcca4364c0.bottom (active)>",
"<NSLayoutConstraint:0xcb37aa990 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca436140.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcb37a87d0 UILabel:0xcb36bf800.height >= 22 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcb37a8000 UIView:0xcca436d80.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a8050 UIView:0xcca4372c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a8410 UIImageView:0xcca22b800.height == 30 (active)>",
"<NSLayoutConstraint:0xcb37a8910 UIView:0xcca435a40.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a8960 UIView:0xcca4356c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a8b40 V:[UIStackView:0xcca436300]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca436140 )>",
"<NSLayoutConstraint:0xcb37a8b90 V:|-(0)-[UIStackView:0xcca436300] (active, names: '|':UITableViewCellContentView:0xcca436140 )>",
"<NSLayoutConstraint:0xcb37aa120 'UISV-alignment' UIButton:0xcca28ed00.centerY == UIImageView:0xcca22b800.centerY (active)>",
"<NSLayoutConstraint:0xcb37a8fa0 'UISV-canvas-connection' UIStackView:0xcca436bc0.top == UIView:0xcca436d80.top (active)>",
"<NSLayoutConstraint:0xcb37a8ff0 'UISV-canvas-connection' V:[UIView:0xcca4372c0]-(0)-| (active, names: '|':UIStackView:0xcca436bc0 )>",
"<NSLayoutConstraint:0xcb37a9ef0 'UISV-canvas-connection' UIStackView:0xcca437100.top == _UILayoutSpacer:0xcb3433c00'UISV-alignment-spanner'.top (active)>",
"<NSLayoutConstraint:0xcb37a9f90 'UISV-canvas-connection' UIStackView:0xcca437100.centerY == UIButton:0xcca28ed00.centerY (active)>",
"<NSLayoutConstraint:0xcb37aa210 'UISV-canvas-connection' UIStackView:0xcca435880.top == UIView:0xcca435a40.top (active)>",
"<NSLayoutConstraint:0xcb37aa260 'UISV-canvas-connection' V:[UIView:0xcca4356c0]-(0)-| (active, names: '|':UIStackView:0xcca435880 )>",
"<NSLayoutConstraint:0xcb37aa440 'UISV-canvas-connection' UIStackView:0xcca436300.top == UIStackView:0xcca436bc0.top (active)>",
"<NSLayoutConstraint:0xcb37aa490 'UISV-canvas-connection' V:[UIStackView:0xcca435880]-(0)-| (active, names: '|':UIStackView:0xcca436300 )>",
"<NSLayoutConstraint:0xcb37a9040 'UISV-spacing' V:[UIView:0xcca436d80]-(5)-[UIView:0xcca4372c0] (active)>",
"<NSLayoutConstraint:0xcb37aa2b0 'UISV-spacing' V:[UIView:0xcca435a40]-(5)-[UIView:0xcca4356c0] (active)>",
"<NSLayoutConstraint:0xcb37aadf0 'UISV-spacing' V:[UIStackView:0xcca436bc0]-(4)-[UIStackView:0xcca437100] (active)>",
"<NSLayoutConstraint:0xcb37aaee0 'UISV-spacing' V:[UIStackView:0xcca437100]-(4)-[UIStackView:0xcca435880] (active)>",
"<NSLayoutConstraint:0xcb37a9d10 'UISV-spanning-boundary' _UILayoutSpacer:0xcb3433c00'UISV-alignment-spanner'.top <= UIImageView:0xcca22b800.top (active)>",
"<NSLayoutConstraint:0xcb37aa990 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca436140.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcb37a8410 UIImageView:0xcca22b800.height == 30 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcb37a8550 UIView:0xcca4341c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a8a50 UIView:0xcca4348c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a9bd0 UIView:0xcca434700.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37aa580 UILabel:0xcb36bfb80.height >= 22 (active)>",
"<NSLayoutConstraint:0xcb37ab110 UIView:0xcca2f8000.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37ab160 UIView:0xcca2f8380.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37ab1b0 UIView:0xcca2f8540.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37ab390 V:[UIStackView:0xcca434e00]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca434fc0 )>",
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:0xcb37a8550 UIView:0xcca4341c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a8a50 UIView:0xcca4348c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37aaf30 UILabel:0xcb3760380.height >= 22 (active)>",
"<NSLayoutConstraint:0xcb37ab070 UIView:0xcca4379c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37ab020 UIView:0xcca26e4c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37ab160 UIView:0xcca2f8380.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37ab1b0 UIView:0xcca2f8540.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37ab390 V:[UIStackView:0xcca434e00]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca434fc0 )>",
"<NSLayoutConstraint:0xcb37ab3e0 V:|-(0)-[UIStackView:0xcca434e00] (active, names: '|':UITableViewCellContentView:0xcca434fc0 )>",
"<NSLayoutConstraint:0xcb37cc690 'UISV-alignment' UIButton:0xcca28f600.centerY == UIStackView:0xcca437800.centerY (active)>",
"<NSLayoutConstraint:0xcb37ab7f0 'UISV-canvas-connection' UIStackView:0xcca434000.top == UIView:0xcca4341c0.top (active)>",
"<NSLayoutConstraint:0xcb37ab840 'UISV-canvas-connection' V:[UIView:0xcca4348c0]-(0)-| (active, names: '|':UIStackView:0xcca434000 )>",
"<NSLayoutConstraint:0xcb37abe80 'UISV-canvas-connection' UIStackView:0xcca437800.top == UIView:0xcca4379c0.top (active)>",
"<NSLayoutConstraint:0xcb37abed0 'UISV-canvas-connection' V:[UIView:0xcca26e4c0]-(0)-| (active, names: '|':UIStackView:0xcca437800 )>",
"<NSLayoutConstraint:0xcb37cc410 'UISV-canvas-connection' V:[_UILayoutSpacer:0xcb3432b00'UISV-alignment-spanner']-(0)-| (active, names: '|':UIStackView:0xcca437480 )>",
"<NSLayoutConstraint:0xcb37cc460 'UISV-canvas-connection' UIStackView:0xcca437480.centerY == UIButton:0xcca28f600.centerY (active)>",
"<NSLayoutConstraint:0xcb37cc6e0 'UISV-canvas-connection' UIStackView:0xcca2f81c0.top == UIView:0xcca2f8380.top (active)>",
"<NSLayoutConstraint:0xcb37cc730 'UISV-canvas-connection' V:[UIView:0xcca2f8540]-(0)-| (active, names: '|':UIStackView:0xcca2f81c0 )>",
"<NSLayoutConstraint:0xcb37cc910 'UISV-canvas-connection' UIStackView:0xcca434e00.top == UIStackView:0xcca434000.top (active)>",
"<NSLayoutConstraint:0xcb37cc960 'UISV-canvas-connection' V:[UIStackView:0xcca2f81c0]-(0)-| (active, names: '|':UIStackView:0xcca434e00 )>",
"<NSLayoutConstraint:0xcb37ab890 'UISV-spacing' V:[UIView:0xcca4341c0]-(5)-[UIView:0xcca4348c0] (active)>",
"<NSLayoutConstraint:0xcb37abf20 'UISV-spacing' V:[UIView:0xcca4379c0]-(4)-[UILabel:0xcb3760380] (active)>",
"<NSLayoutConstraint:0xcb37abf70 'UISV-spacing' V:[UILabel:0xcb3760380]-(4)-[UIView:0xcca26e4c0] (active)>",
"<NSLayoutConstraint:0xcb37cc780 'UISV-spacing' V:[UIView:0xcca2f8380]-(5)-[UIView:0xcca2f8540] (active)>",
"<NSLayoutConstraint:0xcb37cd310 'UISV-spacing' V:[UIStackView:0xcca434000]-(4)-[UIStackView:0xcca437480] (active)>",
"<NSLayoutConstraint:0xcb37cd400 'UISV-spacing' V:[UIStackView:0xcca437480]-(4)-[UIStackView:0xcca2f81c0] (active)>",
"<NSLayoutConstraint:0xcb37cc370 'UISV-spanning-boundary' _UILayoutSpacer:0xcb3432b00'UISV-alignment-spanner'.bottom >= UIStackView:0xcca437800.bottom (active)>",
"<NSLayoutConstraint:0xcb37cce60 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca434fc0.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcb37aaf30 UILabel:0xcb3760380.height >= 22 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcb37a8550 UIView:0xcca4341c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37a8a50 UIView:0xcca4348c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37aac60 UIImageView:0xcca300a00.height == 30 (active)>",
"<NSLayoutConstraint:0xcb37ab160 UIView:0xcca2f8380.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37ab1b0 UIView:0xcca2f8540.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37ab390 V:[UIStackView:0xcca434e00]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca434fc0 )>",
"<NSLayoutConstraint:0xcb37ab3e0 V:|-(0)-[UIStackView:0xcca434e00] (active, names: '|':UITableViewCellContentView:0xcca434fc0 )>",
"<NSLayoutConstraint:0xcb37cc5f0 'UISV-alignment' UIButton:0xcca28f600.centerY == UIImageView:0xcca300a00.centerY (active)>",
"<NSLayoutConstraint:0xcb37ab7f0 'UISV-canvas-connection' UIStackView:0xcca434000.top == UIView:0xcca4341c0.top (active)>",
"<NSLayoutConstraint:0xcb37ab840 'UISV-canvas-connection' V:[UIView:0xcca4348c0]-(0)-| (active, names: '|':UIStackView:0xcca434000 )>",
"<NSLayoutConstraint:0xcb37cc3c0 'UISV-canvas-connection' UIStackView:0xcca437480.top == _UILayoutSpacer:0xcb3432b00'UISV-alignment-spanner'.top (active)>",
"<NSLayoutConstraint:0xcb37cc460 'UISV-canvas-connection' UIStackView:0xcca437480.centerY == UIButton:0xcca28f600.centerY (active)>",
"<NSLayoutConstraint:0xcb37cc6e0 'UISV-canvas-connection' UIStackView:0xcca2f81c0.top == UIView:0xcca2f8380.top (active)>",
"<NSLayoutConstraint:0xcb37cc730 'UISV-canvas-connection' V:[UIView:0xcca2f8540]-(0)-| (active, names: '|':UIStackView:0xcca2f81c0 )>",
"<NSLayoutConstraint:0xcb37cc910 'UISV-canvas-connection' UIStackView:0xcca434e00.top == UIStackView:0xcca434000.top (active)>",
"<NSLayoutConstraint:0xcb37cc960 'UISV-canvas-connection' V:[UIStackView:0xcca2f81c0]-(0)-| (active, names: '|':UIStackView:0xcca434e00 )>",
"<NSLayoutConstraint:0xcb37ab890 'UISV-spacing' V:[UIView:0xcca4341c0]-(5)-[UIView:0xcca4348c0] (active)>",
"<NSLayoutConstraint:0xcb37cc780 'UISV-spacing' V:[UIView:0xcca2f8380]-(5)-[UIView:0xcca2f8540] (active)>",
"<NSLayoutConstraint:0xcb37cd310 'UISV-spacing' V:[UIStackView:0xcca434000]-(4)-[UIStackView:0xcca437480] (active)>",
"<NSLayoutConstraint:0xcb37cd400 'UISV-spacing' V:[UIStackView:0xcca437480]-(4)-[UIStackView:0xcca2f81c0] (active)>",
"<NSLayoutConstraint:0xcb37cc1e0 'UISV-spanning-boundary' _UILayoutSpacer:0xcb3432b00'UISV-alignment-spanner'.top <= UIImageView:0xcca300a00.top (active)>",
"<NSLayoutConstraint:0xcb37cce60 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca434fc0.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcb37aac60 UIImageView:0xcca300a00.height == 30 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcb37cdf40 UIView:0xcca308e00.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37ce990 UIView:0xcca308fc0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37cf700 UIView:0xcca309180.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37cfa20 UILabel:0xcb3760e00.height >= 22 (active)>",
"<NSLayoutConstraint:0xcb37cfcf0 UIView:0xcca309f80.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37cfd40 UIView:0xcca30a300.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37cfd90 UIView:0xcca30a4c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37cff70 V:[UIStackView:0xcca308a80]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca3088c0 )>",
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:0xcb37cdf40 UIView:0xcca308e00.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37ce990 UIView:0xcca308fc0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37cf930 UIImageView:0xcca301a00.height == 30 (active)>",
"<NSLayoutConstraint:0xcb37cfd40 UIView:0xcca30a300.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37cfd90 UIView:0xcca30a4c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37cff70 V:[UIStackView:0xcca308a80]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca3088c0 )>",
"<NSLayoutConstraint:0xcb37abcf0 V:|-(0)-[UIStackView:0xcca308a80] (active, names: '|':UITableViewCellContentView:0xcca3088c0 )>",
"<NSLayoutConstraint:0xcb2c15450 'UISV-alignment' UIButton:0xcca237300.centerY == UIImageView:0xcca301a00.centerY (active)>",
"<NSLayoutConstraint:0xcb2c142d0 'UISV-canvas-connection' UIStackView:0xcca308c40.top == UIView:0xcca308e00.top (active)>",
"<NSLayoutConstraint:0xcb2c14320 'UISV-canvas-connection' V:[UIView:0xcca308fc0]-(0)-| (active, names: '|':UIStackView:0xcca308c40 )>",
"<NSLayoutConstraint:0xcb2c15220 'UISV-canvas-connection' UIStackView:0xcca309340.top == _UILayoutSpacer:0xcb3432600'UISV-alignment-spanner'.top (active)>",
"<NSLayoutConstraint:0xcb2c152c0 'UISV-canvas-connection' UIStackView:0xcca309340.centerY == UIButton:0xcca237300.centerY (active)>",
"<NSLayoutConstraint:0xcb2c15540 'UISV-canvas-connection' UIStackView:0xcca30a140.top == UIView:0xcca30a300.top (active)>",
"<NSLayoutConstraint:0xcb2c15590 'UISV-canvas-connection' V:[UIView:0xcca30a4c0]-(0)-| (active, names: '|':UIStackView:0xcca30a140 )>",
"<NSLayoutConstraint:0xcb2c15770 'UISV-canvas-connection' UIStackView:0xcca308a80.top == UIStackView:0xcca308c40.top (active)>",
"<NSLayoutConstraint:0xcb2c157c0 'UISV-canvas-connection' V:[UIStackView:0xcca30a140]-(0)-| (active, names: '|':UIStackView:0xcca308a80 )>",
"<NSLayoutConstraint:0xcb2c14370 'UISV-spacing' V:[UIView:0xcca308e00]-(5)-[UIView:0xcca308fc0] (active)>",
"<NSLayoutConstraint:0xcb2c155e0 'UISV-spacing' V:[UIView:0xcca30a300]-(5)-[UIView:0xcca30a4c0] (active)>",
"<NSLayoutConstraint:0xcb2c16030 'UISV-spacing' V:[UIStackView:0xcca308c40]-(4)-[UIStackView:0xcca309340] (active)>",
"<NSLayoutConstraint:0xcb2c16120 'UISV-spacing' V:[UIStackView:0xcca309340]-(4)-[UIStackView:0xcca30a140] (active)>",
"<NSLayoutConstraint:0xcb2c15040 'UISV-spanning-boundary' _UILayoutSpacer:0xcb3432600'UISV-alignment-spanner'.top <= UIImageView:0xcca301a00.top (active)>",
"<NSLayoutConstraint:0xcb2c15cc0 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca3088c0.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcb37cf930 UIImageView:0xcca301a00.height == 30 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcb37cdf40 UIView:0xcca308e00.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37ce990 UIView:0xcca308fc0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37cfb60 UIView:0xcca309c00.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37cfc00 UILabel:0xcb3761500.height >= 22 (active)>",
"<NSLayoutConstraint:0xcb37cfca0 UIView:0xcca309dc0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37cfd40 UIView:0xcca30a300.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37cfd90 UIView:0xcca30a4c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb37cff70 V:[UIStackView:0xcca308a80]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca3088c0 )>",
"<NSLayoutConstraint:0xcb37abcf0 V:|-(0)-[UIStackView:0xcca308a80] (active, names: '|':UITableViewCellContentView:0xcca3088c0 )>",
"<NSLayoutConstraint:0xcb2c154f0 'UISV-alignment' UIButton:0xcca237300.centerY == UIStackView:0xcca309a40.centerY (active)>",
"<NSLayoutConstraint:0xcb2c142d0 'UISV-canvas-connection' UIStackView:0xcca308c40.top == UIView:0xcca308e00.top (active)>",
"<NSLayoutConstraint:0xcb2c14320 'UISV-canvas-connection' V:[UIView:0xcca308fc0]-(0)-| (active, names: '|':UIStackView:0xcca308c40 )>",
"<NSLayoutConstraint:0xcb2c14960 'UISV-canvas-connection' UIStackView:0xcca309a40.top == UIView:0xcca309c00.top (active)>",
"<NSLayoutConstraint:0xcb2c149b0 'UISV-canvas-connection' V:[UIView:0xcca309dc0]-(0)-| (active, names: '|':UIStackView:0xcca309a40 )>",
"<NSLayoutConstraint:0xcb2c15270 'UISV-canvas-connection' V:[_UILayoutSpacer:0xcb3432600'UISV-alignment-spanner']-(0)-| (active, names: '|':UIStackView:0xcca309340 )>",
"<NSLayoutConstraint:0xcb2c152c0 'UISV-canvas-connection' UIStackView:0xcca309340.centerY == UIButton:0xcca237300.centerY (active)>",
"<NSLayoutConstraint:0xcb2c15540 'UISV-canvas-connection' UIStackView:0xcca30a140.top == UIView:0xcca30a300.top (active)>",
"<NSLayoutConstraint:0xcb2c15590 'UISV-canvas-connection' V:[UIView:0xcca30a4c0]-(0)-| (active, names: '|':UIStackView:0xcca30a140 )>",
"<NSLayoutConstraint:0xcb2c15770 'UISV-canvas-connection' UIStackView:0xcca308a80.top == UIStackView:0xcca308c40.top (active)>",
"<NSLayoutConstraint:0xcb2c157c0 'UISV-canvas-connection' V:[UIStackView:0xcca30a140]-(0)-| (active, names: '|':UIStackView:0xcca308a80 )>",
"<NSLayoutConstraint:0xcb2c14370 'UISV-spacing' V:[UIView:0xcca308e00]-(5)-[UIView:0xcca308fc0] (active)>",
"<NSLayoutConstraint:0xcb2c14a00 'UISV-spacing' V:[UIView:0xcca309c00]-(4)-[UILabel:0xcb3761500] (active)>",
"<NSLayoutConstraint:0xcb2c14a50 'UISV-spacing' V:[UILabel:0xcb3761500]-(4)-[UIView:0xcca309dc0] (active)>",
"<NSLayoutConstraint:0xcb2c155e0 'UISV-spacing' V:[UIView:0xcca30a300]-(5)-[UIView:0xcca30a4c0] (active)>",
"<NSLayoutConstraint:0xcb2c16030 'UISV-spacing' V:[UIStackView:0xcca308c40]-(4)-[UIStackView:0xcca309340] (active)>",
"<NSLayoutConstraint:0xcb2c16120 'UISV-spacing' V:[UIStackView:0xcca309340]-(4)-[UIStackView:0xcca30a140] (active)>",
"<NSLayoutConstraint:0xcb2c151d0 'UISV-spanning-boundary' _UILayoutSpacer:0xcb3432600'UISV-alignment-spanner'.bottom >= UIStackView:0xcca309a40.bottom (active)>",
"<NSLayoutConstraint:0xcb2c15cc0 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca3088c0.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcb37cfc00 UILabel:0xcb3761500.height >= 22 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcb2c14f00 UIView:0xcca30b100.height == 0 (active)>",
"<NSLayoutConstraint:0xcb2c15e50 UIView:0xcca30b2c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb2c15e00 UIView:0xcca30b480.height == 0 (active)>",
"<NSLayoutConstraint:0xcb2c16300 UILabel:0xcb3761880.height >= 22 (active)>",
"<NSLayoutConstraint:0xcb2c164e0 UIView:0xcca31c1c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb2c16530 UIView:0xcca31c540.height == 0 (active)>",
"<NSLayoutConstraint:0xcb2c16580 UIView:0xcca31c700.height == 0 (active)>",
"<NSLayoutConstraint:0xcb2c16760 V:[UIStackView:0xcca30ad80]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca30a840 )>",
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:0xcb2c14f00 UIView:0xcca30b100.height == 0 (active)>",
"<NSLayoutConstraint:0xcb2c15e50 UIView:0xcca30b2c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb2c15810 UIImageView:0xcca303000.height == 30 (active)>",
"<NSLayoutConstraint:0xcb2c16530 UIView:0xcca31c540.height == 0 (active)>",
"<NSLayoutConstraint:0xcb2c16580 UIView:0xcca31c700.height == 0 (active)>",
"<NSLayoutConstraint:0xcb2c16760 V:[UIStackView:0xcca30ad80]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca30a840 )>",
"<NSLayoutConstraint:0xcb2c167b0 V:|-(0)-[UIStackView:0xcca30ad80] (active, names: '|':UITableViewCellContentView:0xcca30a840 )>",
"<NSLayoutConstraint:0xcb2c17d40 'UISV-alignment' UIButton:0xcca310600.centerY == UIImageView:0xcca303000.centerY (active)>",
"<NSLayoutConstraint:0xcb2c16bc0 'UISV-canvas-connection' UIStackView:0xcca30af40.top == UIView:0xcca30b100.top (active)>",
"<NSLayoutConstraint:0xcb2c16c10 'UISV-canvas-connection' V:[UIView:0xcca30b2c0]-(0)-| (active, names: '|':UIStackView:0xcca30af40 )>",
"<NSLayoutConstraint:0xcb2c17b10 'UISV-canvas-connection' UIStackView:0xcca30b640.top == _UILayoutSpacer:0xcb3431500'UISV-alignment-spanner'.top (active)>",
"<NSLayoutConstraint:0xcb2c17bb0 'UISV-canvas-connection' UIStackView:0xcca30b640.centerY == UIButton:0xcca310600.centerY (active)>",
"<NSLayoutConstraint:0xcb2c17e30 'UISV-canvas-connection' UIStackView:0xcca31c380.top == UIView:0xcca31c540.top (active)>",
"<NSLayoutConstraint:0xcb2c17e80 'UISV-canvas-connection' V:[UIView:0xcca31c700]-(0)-| (active, names: '|':UIStackView:0xcca31c380 )>",
"<NSLayoutConstraint:0xcaff28000 'UISV-canvas-connection' UIStackView:0xcca30ad80.top == UIStackView:0xcca30af40.top (active)>",
"<NSLayoutConstraint:0xcaff28050 'UISV-canvas-connection' V:[UIStackView:0xcca31c380]-(0)-| (active, names: '|':UIStackView:0xcca30ad80 )>",
"<NSLayoutConstraint:0xcb2c16c60 'UISV-spacing' V:[UIView:0xcca30b100]-(5)-[UIView:0xcca30b2c0] (active)>",
"<NSLayoutConstraint:0xcb2c17ed0 'UISV-spacing' V:[UIView:0xcca31c540]-(5)-[UIView:0xcca31c700] (active)>",
"<NSLayoutConstraint:0xcaff28a00 'UISV-spacing' V:[UIStackView:0xcca30af40]-(4)-[UIStackView:0xcca30b640] (active)>",
"<NSLayoutConstraint:0xcaff28af0 'UISV-spacing' V:[UIStackView:0xcca30b640]-(4)-[UIStackView:0xcca31c380] (active)>",
"<NSLayoutConstraint:0xcb2c17930 'UISV-spanning-boundary' _UILayoutSpacer:0xcb3431500'UISV-alignment-spanner'.top <= UIImageView:0xcca303000.top (active)>",
"<NSLayoutConstraint:0xcaff28550 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca30a840.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcb2c15810 UIImageView:0xcca303000.height == 30 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcb2c14f00 UIView:0xcca30b100.height == 0 (active)>",
"<NSLayoutConstraint:0xcb2c15e50 UIView:0xcca30b2c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcb2c16350 UIView:0xcca2fb800.height == 0 (active)>",
"<NSLayoutConstraint:0xcb2c163f0 UILabel:0xcb3761f80.height >= 22 (active)>",
"<NSLayoutConstraint:0xcb2c16490 UIView:0xcca31c000.height == 0 (active)>",
"<NSLayoutConstraint:0xcb2c16530 UIView:0xcca31c540.height == 0 (active)>",
"<NSLayoutConstraint:0xcb2c16580 UIView:0xcca31c700.height == 0 (active)>",
"<NSLayoutConstraint:0xcb2c16760 V:[UIStackView:0xcca30ad80]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca30a840 )>",
"<NSLayoutConstraint:0xcb2c167b0 V:|-(0)-[UIStackView:0xcca30ad80] (active, names: '|':UITableViewCellContentView:0xcca30a840 )>",
"<NSLayoutConstraint:0xcb2c17de0 'UISV-alignment' UIButton:0xcca310600.centerY == UIStackView:0xcca30bd40.centerY (active)>",
"<NSLayoutConstraint:0xcb2c16bc0 'UISV-canvas-connection' UIStackView:0xcca30af40.top == UIView:0xcca30b100.top (active)>",
"<NSLayoutConstraint:0xcb2c16c10 'UISV-canvas-connection' V:[UIView:0xcca30b2c0]-(0)-| (active, names: '|':UIStackView:0xcca30af40 )>",
"<NSLayoutConstraint:0xcb2c17250 'UISV-canvas-connection' UIStackView:0xcca30bd40.top == UIView:0xcca2fb800.top (active)>",
"<NSLayoutConstraint:0xcb2c172a0 'UISV-canvas-connection' V:[UIView:0xcca31c000]-(0)-| (active, names: '|':UIStackView:0xcca30bd40 )>",
"<NSLayoutConstraint:0xcb2c17b60 'UISV-canvas-connection' V:[_UILayoutSpacer:0xcb3431500'UISV-alignment-spanner']-(0)-| (active, names: '|':UIStackView:0xcca30b640 )>",
"<NSLayoutConstraint:0xcb2c17bb0 'UISV-canvas-connection' UIStackView:0xcca30b640.centerY == UIButton:0xcca310600.centerY (active)>",
"<NSLayoutConstraint:0xcb2c17e30 'UISV-canvas-connection' UIStackView:0xcca31c380.top == UIView:0xcca31c540.top (active)>",
"<NSLayoutConstraint:0xcb2c17e80 'UISV-canvas-connection' V:[UIView:0xcca31c700]-(0)-| (active, names: '|':UIStackView:0xcca31c380 )>",
"<NSLayoutConstraint:0xcaff28000 'UISV-canvas-connection' UIStackView:0xcca30ad80.top == UIStackView:0xcca30af40.top (active)>",
"<NSLayoutConstraint:0xcaff28050 'UISV-canvas-connection' V:[UIStackView:0xcca31c380]-(0)-| (active, names: '|':UIStackView:0xcca30ad80 )>",
"<NSLayoutConstraint:0xcb2c16c60 'UISV-spacing' V:[UIView:0xcca30b100]-(5)-[UIView:0xcca30b2c0] (active)>",
"<NSLayoutConstraint:0xcb2c172f0 'UISV-spacing' V:[UIView:0xcca2fb800]-(4)-[UILabel:0xcb3761f80] (active)>",
"<NSLayoutConstraint:0xcb2c17340 'UISV-spacing' V:[UILabel:0xcb3761f80]-(4)-[UIView:0xcca31c000] (active)>",
"<NSLayoutConstraint:0xcb2c17ed0 'UISV-spacing' V:[UIView:0xcca31c540]-(5)-[UIView:0xcca31c700] (active)>",
"<NSLayoutConstraint:0xcaff28a00 'UISV-spacing' V:[UIStackView:0xcca30af40]-(4)-[UIStackView:0xcca30b640] (active)>",
"<NSLayoutConstraint:0xcaff28af0 'UISV-spacing' V:[UIStackView:0xcca30b640]-(4)-[UIStackView:0xcca31c380] (active)>",
"<NSLayoutConstraint:0xcb2c17ac0 'UISV-spanning-boundary' _UILayoutSpacer:0xcb3431500'UISV-alignment-spanner'.bottom >= UIStackView:0xcca30bd40.bottom (active)>",
"<NSLayoutConstraint:0xcaff28550 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca30a840.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcb2c163f0 UILabel:0xcb3761f80.height >= 22 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcaff286e0 UIView:0xcca31d500.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff28690 UIView:0xcca31d6c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff28730 UIView:0xcca31d880.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff28c80 UILabel:0xcb3762300.height >= 22 (active)>",
"<NSLayoutConstraint:0xcaff28e60 UIView:0xcca31e680.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff28eb0 UIView:0xcca31ea00.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff28f00 UIView:0xcca31ebc0.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff290e0 V:[UIStackView:0xcca31d180]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca31cfc0 )>",
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:0xcaff286e0 UIView:0xcca31d500.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff28690 UIView:0xcca31d6c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff28d70 UILabel:0xcb3762a00.height >= 22 (active)>",
"<NSLayoutConstraint:0xcaff28c30 UIView:0xcca31e300.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff28e10 UIView:0xcca31e4c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff28eb0 UIView:0xcca31ea00.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff28f00 UIView:0xcca31ebc0.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff290e0 V:[UIStackView:0xcca31d180]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca31cfc0 )>",
"<NSLayoutConstraint:0xcaff29130 V:|-(0)-[UIStackView:0xcca31d180] (active, names: '|':UITableViewCellContentView:0xcca31cfc0 )>",
"<NSLayoutConstraint:0xcaff2a760 'UISV-alignment' UIButton:0xcca310f00.centerY == UIStackView:0xcca31e140.centerY (active)>",
"<NSLayoutConstraint:0xcaff29540 'UISV-canvas-connection' UIStackView:0xcca31d340.top == UIView:0xcca31d500.top (active)>",
"<NSLayoutConstraint:0xcaff29590 'UISV-canvas-connection' V:[UIView:0xcca31d6c0]-(0)-| (active, names: '|':UIStackView:0xcca31d340 )>",
"<NSLayoutConstraint:0xcaff29bd0 'UISV-canvas-connection' UIStackView:0xcca31e140.top == UIView:0xcca31e300.top (active)>",
"<NSLayoutConstraint:0xcaff29c20 'UISV-canvas-connection' V:[UIView:0xcca31e4c0]-(0)-| (active, names: '|':UIStackView:0xcca31e140 )>",
"<NSLayoutConstraint:0xcaff2a4e0 'UISV-canvas-connection' V:[_UILayoutSpacer:0xcb3432400'UISV-alignment-spanner']-(0)-| (active, names: '|':UIStackView:0xcca31da40 )>",
"<NSLayoutConstraint:0xcaff2a530 'UISV-canvas-connection' UIStackView:0xcca31da40.centerY == UIButton:0xcca310f00.centerY (active)>",
"<NSLayoutConstraint:0xcaff2a7b0 'UISV-canvas-connection' UIStackView:0xcca31e840.top == UIView:0xcca31ea00.top (active)>",
"<NSLayoutConstraint:0xcaff2a800 'UISV-canvas-connection' V:[UIView:0xcca31ebc0]-(0)-| (active, names: '|':UIStackView:0xcca31e840 )>",
"<NSLayoutConstraint:0xcaff2a9e0 'UISV-canvas-connection' UIStackView:0xcca31d180.top == UIStackView:0xcca31d340.top (active)>",
"<NSLayoutConstraint:0xcaff2aa30 'UISV-canvas-connection' V:[UIStackView:0xcca31e840]-(0)-| (active, names: '|':UIStackView:0xcca31d180 )>",
"<NSLayoutConstraint:0xcaff295e0 'UISV-spacing' V:[UIView:0xcca31d500]-(5)-[UIView:0xcca31d6c0] (active)>",
"<NSLayoutConstraint:0xcaff29c70 'UISV-spacing' V:[UIView:0xcca31e300]-(4)-[UILabel:0xcb3762a00] (active)>",
"<NSLayoutConstraint:0xcaff29cc0 'UISV-spacing' V:[UILabel:0xcb3762a00]-(4)-[UIView:0xcca31e4c0] (active)>",
"<NSLayoutConstraint:0xcaff2a850 'UISV-spacing' V:[UIView:0xcca31ea00]-(5)-[UIView:0xcca31ebc0] (active)>",
"<NSLayoutConstraint:0xcaff2b250 'UISV-spacing' V:[UIStackView:0xcca31d340]-(4)-[UIStackView:0xcca31da40] (active)>",
"<NSLayoutConstraint:0xcaff2b340 'UISV-spacing' V:[UIStackView:0xcca31da40]-(4)-[UIStackView:0xcca31e840] (active)>",
"<NSLayoutConstraint:0xcaff2a440 'UISV-spanning-boundary' _UILayoutSpacer:0xcb3432400'UISV-alignment-spanner'.bottom >= UIStackView:0xcca31e140.bottom (active)>",
"<NSLayoutConstraint:0xcaff2af30 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca31cfc0.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcaff28d70 UILabel:0xcb3762a00.height >= 22 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcaff286e0 UIView:0xcca31d500.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff28690 UIView:0xcca31d6c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff280f0 UIImageView:0xcca303c00.height == 30 (active)>",
"<NSLayoutConstraint:0xcaff28eb0 UIView:0xcca31ea00.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff28f00 UIView:0xcca31ebc0.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff290e0 V:[UIStackView:0xcca31d180]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca31cfc0 )>",
"<NSLayoutConstraint:0xcaff29130 V:|-(0)-[UIStackView:0xcca31d180] (active, names: '|':UITableViewCellContentView:0xcca31cfc0 )>",
"<NSLayoutConstraint:0xcaff2a6c0 'UISV-alignment' UIButton:0xcca310f00.centerY == UIImageView:0xcca303c00.centerY (active)>",
"<NSLayoutConstraint:0xcaff29540 'UISV-canvas-connection' UIStackView:0xcca31d340.top == UIView:0xcca31d500.top (active)>",
"<NSLayoutConstraint:0xcaff29590 'UISV-canvas-connection' V:[UIView:0xcca31d6c0]-(0)-| (active, names: '|':UIStackView:0xcca31d340 )>",
"<NSLayoutConstraint:0xcaff2a490 'UISV-canvas-connection' UIStackView:0xcca31da40.top == _UILayoutSpacer:0xcb3432400'UISV-alignment-spanner'.top (active)>",
"<NSLayoutConstraint:0xcaff2a530 'UISV-canvas-connection' UIStackView:0xcca31da40.centerY == UIButton:0xcca310f00.centerY (active)>",
"<NSLayoutConstraint:0xcaff2a7b0 'UISV-canvas-connection' UIStackView:0xcca31e840.top == UIView:0xcca31ea00.top (active)>",
"<NSLayoutConstraint:0xcaff2a800 'UISV-canvas-connection' V:[UIView:0xcca31ebc0]-(0)-| (active, names: '|':UIStackView:0xcca31e840 )>",
"<NSLayoutConstraint:0xcaff2a9e0 'UISV-canvas-connection' UIStackView:0xcca31d180.top == UIStackView:0xcca31d340.top (active)>",
"<NSLayoutConstraint:0xcaff2aa30 'UISV-canvas-connection' V:[UIStackView:0xcca31e840]-(0)-| (active, names: '|':UIStackView:0xcca31d180 )>",
"<NSLayoutConstraint:0xcaff295e0 'UISV-spacing' V:[UIView:0xcca31d500]-(5)-[UIView:0xcca31d6c0] (active)>",
"<NSLayoutConstraint:0xcaff2a850 'UISV-spacing' V:[UIView:0xcca31ea00]-(5)-[UIView:0xcca31ebc0] (active)>",
"<NSLayoutConstraint:0xcaff2b250 'UISV-spacing' V:[UIStackView:0xcca31d340]-(4)-[UIStackView:0xcca31da40] (active)>",
"<NSLayoutConstraint:0xcaff2b340 'UISV-spacing' V:[UIStackView:0xcca31da40]-(4)-[UIStackView:0xcca31e840] (active)>",
"<NSLayoutConstraint:0xcaff2a2b0 'UISV-spanning-boundary' _UILayoutSpacer:0xcb3432400'UISV-alignment-spanner'.top <= UIImageView:0xcca303c00.top (active)>",
"<NSLayoutConstraint:0xcaff2af30 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca31cfc0.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcaff280f0 UIImageView:0xcca303c00.height == 30 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcaff28190 UIView:0xcca31f9c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff28ff0 UIView:0xcca31fb80.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff2a170 UIView:0xcca31fd40.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff2b4d0 UILabel:0xcb3762d80.height >= 22 (active)>",
"<NSLayoutConstraint:0xcaff2b6b0 UIView:0xcca324c40.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff2b700 UIView:0xcca324fc0.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff2b750 UIView:0xcca325180.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff2b930 V:[UIStackView:0xcca31f640]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca31f480 )>",
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:0xcaff28190 UIView:0xcca31f9c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff28ff0 UIView:0xcca31fb80.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff2aad0 UIImageView:0xcca340800.height == 30 (active)>",
"<NSLayoutConstraint:0xcaff2b700 UIView:0xcca324fc0.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff2b750 UIView:0xcca325180.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff2b930 V:[UIStackView:0xcca31f640]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca31f480 )>",
"<NSLayoutConstraint:0xcaff2b980 V:|-(0)-[UIStackView:0xcca31f640] (active, names: '|':UITableViewCellContentView:0xcca31f480 )>",
"<NSLayoutConstraint:0xcaff40dc0 'UISV-alignment' UIButton:0xcca311800.centerY == UIImageView:0xcca340800.centerY (active)>",
"<NSLayoutConstraint:0xcaff2bd90 'UISV-canvas-connection' UIStackView:0xcca31f800.top == UIView:0xcca31f9c0.top (active)>",
"<NSLayoutConstraint:0xcaff2bde0 'UISV-canvas-connection' V:[UIView:0xcca31fb80]-(0)-| (active, names: '|':UIStackView:0xcca31f800 )>",
"<NSLayoutConstraint:0xcaff40b90 'UISV-canvas-connection' UIStackView:0xcca324000.top == _UILayoutSpacer:0xcb3431400'UISV-alignment-spanner'.top (active)>",
"<NSLayoutConstraint:0xcaff40c30 'UISV-canvas-connection' UIStackView:0xcca324000.centerY == UIButton:0xcca311800.centerY (active)>",
"<NSLayoutConstraint:0xcaff40eb0 'UISV-canvas-connection' UIStackView:0xcca324e00.top == UIView:0xcca324fc0.top (active)>",
"<NSLayoutConstraint:0xcaff40f00 'UISV-canvas-connection' V:[UIView:0xcca325180]-(0)-| (active, names: '|':UIStackView:0xcca324e00 )>",
"<NSLayoutConstraint:0xcaff410e0 'UISV-canvas-connection' UIStackView:0xcca31f640.top == UIStackView:0xcca31f800.top (active)>",
"<NSLayoutConstraint:0xcaff41130 'UISV-canvas-connection' V:[UIStackView:0xcca324e00]-(0)-| (active, names: '|':UIStackView:0xcca31f640 )>",
"<NSLayoutConstraint:0xcaff2be30 'UISV-spacing' V:[UIView:0xcca31f9c0]-(5)-[UIView:0xcca31fb80] (active)>",
"<NSLayoutConstraint:0xcaff40f50 'UISV-spacing' V:[UIView:0xcca324fc0]-(5)-[UIView:0xcca325180] (active)>",
"<NSLayoutConstraint:0xcaff419f0 'UISV-spacing' V:[UIStackView:0xcca31f800]-(4)-[UIStackView:0xcca324000] (active)>",
"<NSLayoutConstraint:0xcaff41ae0 'UISV-spacing' V:[UIStackView:0xcca324000]-(4)-[UIStackView:0xcca324e00] (active)>",
"<NSLayoutConstraint:0xcaff409b0 'UISV-spanning-boundary' _UILayoutSpacer:0xcb3431400'UISV-alignment-spanner'.top <= UIImageView:0xcca340800.top (active)>",
"<NSLayoutConstraint:0xcaff41630 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca31f480.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcaff2aad0 UIImageView:0xcca340800.height == 30 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcaff28190 UIView:0xcca31f9c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff28ff0 UIView:0xcca31fb80.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff2b480 UIView:0xcca3248c0.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff2b5c0 UILabel:0xcb3763480.height >= 22 (active)>",
"<NSLayoutConstraint:0xcaff2b660 UIView:0xcca324a80.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff2b700 UIView:0xcca324fc0.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff2b750 UIView:0xcca325180.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff2b930 V:[UIStackView:0xcca31f640]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca31f480 )>",
"<NSLayoutConstraint:0xcaff2b980 V:|-(0)-[UIStackView:0xcca31f640] (active, names: '|':UITableViewCellContentView:0xcca31f480 )>",
"<NSLayoutConstraint:0xcaff40e60 'UISV-alignment' UIButton:0xcca311800.centerY == UIStackView:0xcca324700.centerY (active)>",
"<NSLayoutConstraint:0xcaff2bd90 'UISV-canvas-connection' UIStackView:0xcca31f800.top == UIView:0xcca31f9c0.top (active)>",
"<NSLayoutConstraint:0xcaff2bde0 'UISV-canvas-connection' V:[UIView:0xcca31fb80]-(0)-| (active, names: '|':UIStackView:0xcca31f800 )>",
"<NSLayoutConstraint:0xcaff402d0 'UISV-canvas-connection' UIStackView:0xcca324700.top == UIView:0xcca3248c0.top (active)>",
"<NSLayoutConstraint:0xcaff40320 'UISV-canvas-connection' V:[UIView:0xcca324a80]-(0)-| (active, names: '|':UIStackView:0xcca324700 )>",
"<NSLayoutConstraint:0xcaff40be0 'UISV-canvas-connection' V:[_UILayoutSpacer:0xcb3431400'UISV-alignment-spanner']-(0)-| (active, names: '|':UIStackView:0xcca324000 )>",
"<NSLayoutConstraint:0xcaff40c30 'UISV-canvas-connection' UIStackView:0xcca324000.centerY == UIButton:0xcca311800.centerY (active)>",
"<NSLayoutConstraint:0xcaff40eb0 'UISV-canvas-connection' UIStackView:0xcca324e00.top == UIView:0xcca324fc0.top (active)>",
"<NSLayoutConstraint:0xcaff40f00 'UISV-canvas-connection' V:[UIView:0xcca325180]-(0)-| (active, names: '|':UIStackView:0xcca324e00 )>",
"<NSLayoutConstraint:0xcaff410e0 'UISV-canvas-connection' UIStackView:0xcca31f640.top == UIStackView:0xcca31f800.top (active)>",
"<NSLayoutConstraint:0xcaff41130 'UISV-canvas-connection' V:[UIStackView:0xcca324e00]-(0)-| (active, names: '|':UIStackView:0xcca31f640 )>",
"<NSLayoutConstraint:0xcaff2be30 'UISV-spacing' V:[UIView:0xcca31f9c0]-(5)-[UIView:0xcca31fb80] (active)>",
"<NSLayoutConstraint:0xcaff40370 'UISV-spacing' V:[UIView:0xcca3248c0]-(4)-[UILabel:0xcb3763480] (active)>",
"<NSLayoutConstraint:0xcaff403c0 'UISV-spacing' V:[UILabel:0xcb3763480]-(4)-[UIView:0xcca324a80] (active)>",
"<NSLayoutConstraint:0xcaff40f50 'UISV-spacing' V:[UIView:0xcca324fc0]-(5)-[UIView:0xcca325180] (active)>",
"<NSLayoutConstraint:0xcaff419f0 'UISV-spacing' V:[UIStackView:0xcca31f800]-(4)-[UIStackView:0xcca324000] (active)>",
"<NSLayoutConstraint:0xcaff41ae0 'UISV-spacing' V:[UIStackView:0xcca324000]-(4)-[UIStackView:0xcca324e00] (active)>",
"<NSLayoutConstraint:0xcaff40b40 'UISV-spanning-boundary' _UILayoutSpacer:0xcb3431400'UISV-alignment-spanner'.bottom >= UIStackView:0xcca324700.bottom (active)>",
"<NSLayoutConstraint:0xcaff41630 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca31f480.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcaff2b5c0 UILabel:0xcb3763480.height >= 22 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcaff40870 UIView:0xcca325f80.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff417c0 UIView:0xcca326140.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff41770 UIView:0xcca326300.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff41c70 UILabel:0xcb3763800.height >= 22 (active)>",
"<NSLayoutConstraint:0xcaff41e50 UIView:0xcca327100.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff41ea0 UIView:0xcca327480.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff41ef0 UIView:0xcca327640.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff420d0 V:[UIStackView:0xcca325c00]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca325a40 )>",
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:0xcaff40870 UIView:0xcca325f80.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff417c0 UIView:0xcca326140.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff41d60 UILabel:0xcb2c60000.height >= 22 (active)>",
"<NSLayoutConstraint:0xcaff41c20 UIView:0xcca326d80.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff41e00 UIView:0xcca326f40.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff41ea0 UIView:0xcca327480.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff41ef0 UIView:0xcca327640.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff420d0 V:[UIStackView:0xcca325c00]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca325a40 )>",
"<NSLayoutConstraint:0xcaff42120 V:|-(0)-[UIStackView:0xcca325c00] (active, names: '|':UITableViewCellContentView:0xcca325a40 )>",
"<NSLayoutConstraint:0xcaff43750 'UISV-alignment' UIButton:0xcca312100.centerY == UIStackView:0xcca326bc0.centerY (active)>",
"<NSLayoutConstraint:0xcaff42530 'UISV-canvas-connection' UIStackView:0xcca325dc0.top == UIView:0xcca325f80.top (active)>",
"<NSLayoutConstraint:0xcaff42580 'UISV-canvas-connection' V:[UIView:0xcca326140]-(0)-| (active, names: '|':UIStackView:0xcca325dc0 )>",
"<NSLayoutConstraint:0xcaff42bc0 'UISV-canvas-connection' UIStackView:0xcca326bc0.top == UIView:0xcca326d80.top (active)>",
"<NSLayoutConstraint:0xcaff42c10 'UISV-canvas-connection' V:[UIView:0xcca326f40]-(0)-| (active, names: '|':UIStackView:0xcca326bc0 )>",
"<NSLayoutConstraint:0xcaff434d0 'UISV-canvas-connection' V:[_UILayoutSpacer:0xcb3431c00'UISV-alignment-spanner']-(0)-| (active, names: '|':UIStackView:0xcca3264c0 )>",
"<NSLayoutConstraint:0xcaff43520 'UISV-canvas-connection' UIStackView:0xcca3264c0.centerY == UIButton:0xcca312100.centerY (active)>",
"<NSLayoutConstraint:0xcaff437a0 'UISV-canvas-connection' UIStackView:0xcca3272c0.top == UIView:0xcca327480.top (active)>",
"<NSLayoutConstraint:0xcaff437f0 'UISV-canvas-connection' V:[UIView:0xcca327640]-(0)-| (active, names: '|':UIStackView:0xcca3272c0 )>",
"<NSLayoutConstraint:0xcaff439d0 'UISV-canvas-connection' UIStackView:0xcca325c00.top == UIStackView:0xcca325dc0.top (active)>",
"<NSLayoutConstraint:0xcaff43a20 'UISV-canvas-connection' V:[UIStackView:0xcca3272c0]-(0)-| (active, names: '|':UIStackView:0xcca325c00 )>",
"<NSLayoutConstraint:0xcaff425d0 'UISV-spacing' V:[UIView:0xcca325f80]-(5)-[UIView:0xcca326140] (active)>",
"<NSLayoutConstraint:0xcaff42c60 'UISV-spacing' V:[UIView:0xcca326d80]-(4)-[UILabel:0xcb2c60000] (active)>",
"<NSLayoutConstraint:0xcaff42cb0 'UISV-spacing' V:[UILabel:0xcb2c60000]-(4)-[UIView:0xcca326f40] (active)>",
"<NSLayoutConstraint:0xcaff43840 'UISV-spacing' V:[UIView:0xcca327480]-(5)-[UIView:0xcca327640] (active)>",
"<NSLayoutConstraint:0xcaff483c0 'UISV-spacing' V:[UIStackView:0xcca325dc0]-(4)-[UIStackView:0xcca3264c0] (active)>",
"<NSLayoutConstraint:0xcaff484b0 'UISV-spacing' V:[UIStackView:0xcca3264c0]-(4)-[UIStackView:0xcca3272c0] (active)>",
"<NSLayoutConstraint:0xcaff43430 'UISV-spanning-boundary' _UILayoutSpacer:0xcb3431c00'UISV-alignment-spanner'.bottom >= UIStackView:0xcca326bc0.bottom (active)>",
"<NSLayoutConstraint:0xcaff43f20 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca325a40.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcaff41d60 UILabel:0xcb2c60000.height >= 22 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
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:0xcaff40870 UIView:0xcca325f80.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff417c0 UIView:0xcca326140.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff411d0 UIImageView:0xcca341400.height == 30 (active)>",
"<NSLayoutConstraint:0xcaff41ea0 UIView:0xcca327480.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff41ef0 UIView:0xcca327640.height == 0 (active)>",
"<NSLayoutConstraint:0xcaff420d0 V:[UIStackView:0xcca325c00]-(0)-| (active, names: '|':UITableViewCellContentView:0xcca325a40 )>",
"<NSLayoutConstraint:0xcaff42120 V:|-(0)-[UIStackView:0xcca325c00] (active, names: '|':UITableViewCellContentView:0xcca325a40 )>",
"<NSLayoutConstraint:0xcaff436b0 'UISV-alignment' UIButton:0xcca312100.centerY == UIImageView:0xcca341400.centerY (active)>",
"<NSLayoutConstraint:0xcaff42530 'UISV-canvas-connection' UIStackView:0xcca325dc0.top == UIView:0xcca325f80.top (active)>",
"<NSLayoutConstraint:0xcaff42580 'UISV-canvas-connection' V:[UIView:0xcca326140]-(0)-| (active, names: '|':UIStackView:0xcca325dc0 )>",
"<NSLayoutConstraint:0xcaff43480 'UISV-canvas-connection' UIStackView:0xcca3264c0.top == _UILayoutSpacer:0xcb3431c00'UISV-alignment-spanner'.top (active)>",
"<NSLayoutConstraint:0xcaff43520 'UISV-canvas-connection' UIStackView:0xcca3264c0.centerY == UIButton:0xcca312100.centerY (active)>",
"<NSLayoutConstraint:0xcaff437a0 'UISV-canvas-connection' UIStackView:0xcca3272c0.top == UIView:0xcca327480.top (active)>",
"<NSLayoutConstraint:0xcaff437f0 'UISV-canvas-connection' V:[UIView:0xcca327640]-(0)-| (active, names: '|':UIStackView:0xcca3272c0 )>",
"<NSLayoutConstraint:0xcaff439d0 'UISV-canvas-connection' UIStackView:0xcca325c00.top == UIStackView:0xcca325dc0.top (active)>",
"<NSLayoutConstraint:0xcaff43a20 'UISV-canvas-connection' V:[UIStackView:0xcca3272c0]-(0)-| (active, names: '|':UIStackView:0xcca325c00 )>",
"<NSLayoutConstraint:0xcaff425d0 'UISV-spacing' V:[UIView:0xcca325f80]-(5)-[UIView:0xcca326140] (active)>",
"<NSLayoutConstraint:0xcaff43840 'UISV-spacing' V:[UIView:0xcca327480]-(5)-[UIView:0xcca327640] (active)>",
"<NSLayoutConstraint:0xcaff483c0 'UISV-spacing' V:[UIStackView:0xcca325dc0]-(4)-[UIStackView:0xcca3264c0] (active)>",
"<NSLayoutConstraint:0xcaff484b0 'UISV-spacing' V:[UIStackView:0xcca3264c0]-(4)-[UIStackView:0xcca3272c0] (active)>",
"<NSLayoutConstraint:0xcaff432a0 'UISV-spanning-boundary' _UILayoutSpacer:0xcb3431c00'UISV-alignment-spanner'.top <= UIImageView:0xcca341400.top (active)>",
"<NSLayoutConstraint:0xcaff43f20 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0xcca325a40.height == 40.04 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xcaff411d0 UIImageView:0xcca341400.height == 30 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
cannot add handler to 4 from 1 - dropping
cannot add handler to 3 from 1 - dropping
INFO: [OAMapRendererView 0xcbfafea00] Rendering suspended
WebContent[ 97 731 ] 0x123058100 - [sessionID=1] WebProcess::updateFreezerStatus: isFreezable=1, error=-1
cannot add handler to 4 from 1 - dropping
cannot add handler to 3 from 1 - dropping
| } | ||
| let screenElementsSection = UIMenu(title: "", options: .displayInline, children: [screenElementsAction]) | ||
| let profileActionsSection = UIMenu(title: "", options: .displayInline, children: [copyAction, resetAction]) | ||
| let menu = UIMenu(title: "", children: [screenElementsSection, profileActionsSection]) |
| let screenElementsViewController = ScreenElementsViewController(appMode: appMode) | ||
| screenElementsViewController.delegate = self | ||
| let navigationController = UINavigationController(rootViewController: screenElementsViewController) | ||
| navigationController.modalPresentationStyle = .pageSheet |
There was a problem hiding this comment.
Is this the expected behavior on iPad?
| } | ||
| } | ||
|
|
||
| func iconName(for screenLayoutMode: ScreenLayoutMode) -> String { |
There was a problem hiding this comment.
Why don't you use the generated icon?
There was a problem hiding this comment.
because I set it to panelsLayoutRow.iconName as string value
| } | ||
| } | ||
|
|
||
| func imageName(for screenLayoutMode: ScreenLayoutMode) -> String { |
There was a problem hiding this comment.
because I set it to previewRow.iconName as string value
|
|
||
| init(appMode: OAApplicationMode) { | ||
| private var allPreferenceLayoutModes: [NSNumber?] { | ||
| var preferenceLayoutModes: [NSNumber?] = [nil] |
There was a problem hiding this comment.
why do we need [NSNumber?] here instead of [ScreenLayoutMode?]?
There was a problem hiding this comment.
private var allPreferenceLayoutModes: [NSNumber?] {
[nil] + ScreenLayoutMode.allCases.map { NSNumber(value: $0.rawValue) }
}
There was a problem hiding this comment.
why do we need [NSNumber?] here instead of [ScreenLayoutMode?]?
we need it to fit android behaviour on objective c side
| filterModes: Int(kWidgetModeMatchingPanels), | ||
| panels: panels, | ||
| layoutMode: preferenceLayoutMode) | ||
| for widgetInfo in widgetInfos! { |
| widgetsVisibility.removeAll(where: { $0 == key }) | ||
| widgetsVisibility.removeAll(where: { $0 == COLLAPSED_PREFIX + key }) | ||
| widgetsVisibility.removeAll(where: { $0 == HIDE_PREFIX + key }) | ||
| widgetsVisibility.removeAll(where: { $0 == "" }) |
There was a problem hiding this comment.
Empty entries are now filtered out in widgetsVisibility(_:screenLayoutMode:) using .filter { !$0.isEmpty } when parsing the preference. The array returned here therefore contains no empty strings, so this additional cleanup was redundant. It fits android behaviour
| static let rightPanel = WidgetsPanel("ic_custom_screen_side_right", title: localizedString("map_widget_right")) | ||
| static let topPanel = WidgetsPanel("ic_custom_screen_side_top", title: localizedString("top_widgets_panel")) | ||
| static let bottomPanel = WidgetsPanel("ic_custom_screen_side_bottom", title: localizedString("bottom_widgets_panel")) | ||
| static let leftPanel = WidgetsPanel("ic_custom_screen_side_left", |
There was a problem hiding this comment.
I'm not sure. We need string format for func iconName(for screenLayoutMode: ScreenLayoutMode) -> String that is used for row.iconName = panel.iconName(for: screenLayoutMode)
There was a problem hiding this comment.
Yes, you can use Row.icon = UIImage here.
| func getWidgetOrder(_ widgetId: String, appMode: OAApplicationMode) -> Int { | ||
| return getPagedOrder(widgetId, appMode: appMode).1 | ||
|
|
||
| private func getRtlPanel(rtl: Bool) -> WidgetsPanel { |
There was a problem hiding this comment.
private func rtlPanel(isRtl: Bool) -> WidgetsPanel
There was a problem hiding this comment.
guard rtl else { return self }
switch self {
case .leftPanel:
return .rightPanel
case .rightPanel:
return .leftPanel
case .topPanel, .bottomPanel:
return self
}
| UIImage(named: "ic_custom20_screen_side_bottom")!]) | ||
| let useLandscapeIcons = screenLayoutMode == .landscape | ||
| && OAAppSettings.sharedManager().useSeparateLayouts.get(selectedAppMode) | ||
| let iconNames = useLandscapeIcons |
| class ConfigureScreenViewController: OABaseNavbarSubviewViewController, AppModeSelectionDelegate, WidgetStateDelegate, MapButtonsDelegate { | ||
|
|
||
| private enum RawKey: String { | ||
| case screenElements = "screen_elements" |
| return storedWidgetInfos.enumerated().sorted { | ||
| $0.element.pageIndex == $1.element.pageIndex | ||
| ? $0.offset < $1.offset | ||
| : $0.element.pageIndex < $1.element.pageIndex | ||
| }.map(\.element) |
There was a problem hiding this comment.
Preserve the saved widget order within each page
When copying from the orientation that is not currently displayed, widgetsForAppMode:layoutMode: creates a fresh widget set in initializer order. The registry only sorts that set by pageIndex, and this comparator preserves its original offset within each page, even though priority was just loaded from the saved layout. Consequently, manually reordered widgets are copied in initializer order instead of the order shown in the source layout. For example, reorder two widgets on the same landscape page, keep the device in portrait, and select Copy from landscape layout: their saved relative order is lost. Please sort by pageIndex and then priority before building newPagedOrder.
| override func copyPrefs(from fromAppMode: OAApplicationMode, | ||
| appMode toAppMode: OAApplicationMode, | ||
| customId: String?) { | ||
| Self.registerPreference(customId: customId).set(distanceModePreference.get(fromAppMode), mode: toAppMode) |
There was a problem hiding this comment.
Expose the widget state so the new copy method is reached
This override is never reached by the new panel-copy flow: OABaseWidgetView.copySettingsFromMode obtains the state through storedWidgetState(), but TripRecordingDistanceWidget and its base classes do not override that accessor, so it returns nil. Copying a widget configured for Last uphill into a profile with the default settings therefore produces Total distance instead of preserving the source mode. The other stateful trip-recording widgets and GlideTargetWidget have the same missing connection. Please override storedWidgetState() in those widgets to return their state, as GlideAverageWidget already does, so the added copyPrefs(from:appMode:customId:) implementations actually run.
| BOOL isCompactPortrait = isPortrait && _settings.isCompactPanelsLayout && ![OAUtilities isiOSAppOnMac]; | ||
| BOOL useMultipleRows = isCompactPortrait | ||
| ? _destinationCells.count > 1 | ||
| : isPortrait && [UIDevice currentDevice].userInterfaceIdiom != UIUserInterfaceIdiomPad; |
| static let rightPanel = WidgetsPanel("ic_custom_screen_side_right", title: localizedString("map_widget_right")) | ||
| static let topPanel = WidgetsPanel("ic_custom_screen_side_top", title: localizedString("top_widgets_panel")) | ||
| static let bottomPanel = WidgetsPanel("ic_custom_screen_side_bottom", title: localizedString("bottom_widgets_panel")) | ||
| static let leftPanel = WidgetsPanel("ic_custom_screen_side_left", |
There was a problem hiding this comment.
Yes, you can use Row.icon = UIImage here.
|
Reviewed What checks out
Findings1.
|
|
As for 1. panels_layout_mode keys diverge from Android, and Shared mode isn't actually shared, the value and keys must differ from Android, confirmed by product manager |
|
As for 5. Compact-portrait geometry is derived from default button sizes Updated WidgetPageViewController to calculate side-panel width limits from the HUD container’s bounds, falling back to OAUtilities.calculateScreenWidth() when the container has no width yet. One clarification: DeviceScreenWidth already calls OAUtilities.calculateScreenWidth(), which uses the main window’s width when available, rather than always using the display width. I kept the button-margin formulas unchanged because they match Android’s MapHudLayout. Button positioning and overlap handling are performed separately by MapHudLayout, which accounts for configured button sizes and positions. |
|
As for 7. Changes outside the feature's scope The constraint-warning fixes are being handled separately in another branch. |
|
As for 8. Product question, not a code defect Android parity is a requirement here, so we’ll keep the current behavior: the migration seeds the separate layouts, while switching between Shared and Independent only selects the corresponding stored configuration. Copying on toggle would change that behavior and could overwrite previously configured Independent layouts. |
No description provided.