iPhoneまたはiPadで良好な視覚的結果を得るために制約を使用してUIAlertController内にprogressViewを配置しようとしました。iOS - progressViewを使用してUIAlertControllerに制約を設定できません
alert = [UIAlertController
alertControllerWithTitle:title
message:message
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* cancelButton = [UIAlertAction
actionWithTitle:titleCancel
style:UIAlertActionStyleDefault
handler:cancelBlock];
[alert addAction:cancelButton];
UIProgressView* progressView = [[UIProgressView alloc] init];
progressView.progress = 0.0;
progressView.tintColor = UIColor.blueColor;
[alert.view addSubview:progressView];
UILayoutGuide *margin = alert.view.layoutMarginsGuide;
[alert.view setAutoresizingMask:UIViewAutoresizingNone];
[progressView.heightAnchor constraintEqualToConstant:5].active = YES;
[progressView.widthAnchor constraintEqualToAnchor:margin.widthAnchor multiplier:0.75].active = YES;
[progressView.centerXAnchor constraintEqualToAnchor:margin.centerXAnchor].active = YES;
[progressView.centerYAnchor constraintEqualToAnchor:margin.centerYAnchor].active = YES;
[self presentViewController:alert animated:YES completion:nil];
私は(...一例であり、QUE紫色の四角がsupuse alertViewControllerである)このような何かを達成したい:
これは私がやっているログです...間違っている...なぜ制約との競合があるのですか?
2017-05-09 18:17:28.657982 Myapp[1457:1442554] [Common] _BSMachError: port a0a3; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"
2017-05-09 18:17:28.659300 Myapp[1457:1442554] [Common] _BSMachError: port a0a3; (os/kern) invalid name (0xf) "Unable to deallocate send right"
2017-05-09 18:17:28.709082 Myapp[1457:1442554] [LayoutConstraints] 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.
(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSAutoresizingMaskLayoutConstraint:0x17048be00 h=--& v=--& UIProgressView:0x1013a44b0.height == 2 (active)>",
"<NSLayoutConstraint:0x17449cb60 UIProgressView:0x1013a44b0.height == 5 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x17449cb60 UIProgressView:0x1013a44b0.height == 5 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2017-05-09 18:17:28.712681 Myapp[1457:1442554] [LayoutConstraints] 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.
(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSAutoresizingMaskLayoutConstraint:0x170490310 h=--& v=--& UIProgressView:0x1013a44b0.midY == 1 (active)>",
"<NSLayoutConstraint:0x17449fef0 UIView:0x1013a56e0.height >= 44 (active)>",
"<NSLayoutConstraint:0x17449b2b0 _UIAlertControllerView:0x1013a5a40'Myapp'.height == UIView:0x1013a56e0.height (active)>",
"<NSLayoutConstraint:0x174681e50 UIProgressView:0x1013a44b0.centerY == UILayoutGuide:0x174389170'UIViewLayoutMarginsGuide'.centerY (active)>",
"<NSLayoutConstraint:0x174681e00 'UIView-bottomMargin-guide-constraint' V:[UILayoutGuide:0x174389170'UIViewLayoutMarginsGuide']-(8)-| (active, names: '|':_UIAlertControllerView:0x1013a5a40'Myapp')>",
"<NSLayoutConstraint:0x174681bd0 'UIView-topMargin-guide-constraint' V:|-(8)-[UILayoutGuide:0x174389170'UIViewLayoutMarginsGuide'] (active, names: '|':_UIAlertControllerView:0x1013a5a40'Myapp')>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x17449fef0 UIView:0x1013a56e0.height >= 44 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2017-05-09 18:17:28.715180 Myapp[1457:1442554] [LayoutConstraints] 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.
(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSAutoresizingMaskLayoutConstraint:0x170490310 h=--& v=--& UIProgressView:0x1013a44b0.midY == 1 (active)>",
"<NSLayoutConstraint:0x174681e50 UIProgressView:0x1013a44b0.centerY == UILayoutGuide:0x174389170'UIViewLayoutMarginsGuide'.centerY (active)>",
"<NSLayoutConstraint:0x174681bd0 'UIView-topMargin-guide-constraint' V:|-(8)-[UILayoutGuide:0x174389170'UIViewLayoutMarginsGuide'] (active, names: '|':_UIAlertControllerView:0x1013a5a40'Myapp')>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x174681e50 UIProgressView:0x1013a44b0.centerY == UILayoutGuide:0x174389170'UIViewLayoutMarginsGuide'.centerY (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2017-05-09 18:17:28.717844 Myapp[1457:1442554] [LayoutConstraints] 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.
(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSAutoresizingMaskLayoutConstraint:0x170490f40 h=--& v=--& UIProgressView:0x1013a44b0.midX == 0 (active)>",
"<NSAutoresizingMaskLayoutConstraint:0x170495270 h=--& v=--& UIProgressView:0x1013a44b0.width == 0 (active)>",
"<NSLayoutConstraint:0x174681db0 UIProgressView:0x1013a44b0.width == 0.75*UILayoutGuide:0x174389170'UIViewLayoutMarginsGuide'.width (active)>",
"<NSLayoutConstraint:0x174681f40 UIProgressView:0x1013a44b0.centerX == UILayoutGuide:0x174389170'UIViewLayoutMarginsGuide'.centerX (active)>",
"<NSLayoutConstraint:0x174681c20 'UIView-leftMargin-guide-constraint' H:|-(8)-[UILayoutGuide:0x174389170'UIViewLayoutMarginsGuide'](LTR) (active, names: '|':_UIAlertControllerView:0x1013a5a40'Myapp')>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x174681f40 UIProgressView:0x1013a44b0.centerX == UILayoutGuide:0x174389170'UIViewLayoutMarginsGuide'.centerX (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2017-05-09 18:17:28.720158 Myapp[1457:1442554] [LayoutConstraints] 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.
(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSAutoresizingMaskLayoutConstraint:0x170495270 h=--& v=--& UIProgressView:0x1013a44b0.width == 0 (active)>",
"<NSLayoutConstraint:0x170288840 UIView:0x1013a56e0.width == 270 (active)>",
"<NSLayoutConstraint:0x174499eb0 _UIAlertControllerView:0x1013a5a40'Myapp'.width >= UIView:0x1013a56e0.width (active)>",
"<NSLayoutConstraint:0x174681db0 UIProgressView:0x1013a44b0.width == 0.75*UILayoutGuide:0x174389170'UIViewLayoutMarginsGuide'.width (active)>",
"<NSLayoutConstraint:0x174681c20 'UIView-leftMargin-guide-constraint' H:|-(8)-[UILayoutGuide:0x174389170'UIViewLayoutMarginsGuide'](LTR) (active, names: '|':_UIAlertControllerView:0x1013a5a40'Myapp')>",
"<NSLayoutConstraint:0x174681f90 'UIView-rightMargin-guide-constraint' H:[UILayoutGuide:0x174389170'UIViewLayoutMarginsGuide']-(8)-|(LTR) (active, names: '|':_UIAlertControllerView:0x1013a5a40'Myapp')>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x170288840 UIView:0x1013a56e0.width == 270 (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
は 'UIAlertController'をカスタマイズするように設計されていません。 – rmaddy