UIBarButtonItem With Image Breaks Constraints

I have a UIViewController wherein I set nav items, basically the title and the rightBarButtonItem. I use a SF Symbol for the image. The code is extremely simple. Here it is.

    func setupNavItem() {

        self.navigationItem.title = "Problem in This View"

        

        let helpImage = UIImage(systemName: "questionmark.circle")

        let rightBarItem = UIBarButtonItem(image: helpImage, style: .plain, target: self, action: #selector(showHideHelp))

        navigationItem.rightBarButtonItem = rightBarItem

    }

When I navigate into this view, all heck breaks loose with the constraints. What gives? I'm using Xcode Version 14.0 beta 3 (14A5270f). See the constraint info below.

2022-07-18 16:58:59.998394-0400 NavBarItemExample[28793:996095] [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. 

    "<NSLayoutConstraint:0x600000a79810 UIImageView:0x136d28790.width <= _UIModernBarButton:0x136d274b0.width   (active)>",

    "<NSLayoutConstraint:0x600000a7af80 '_UITemporaryLayoutWidth' _UIButtonBarButton:0x136d27280.width == 0   (active)>",

    "<NSLayoutConstraint:0x600000a793b0 'IB_Leading_Leading' H:|-(>=11)-[_UIModernBarButton:0x136d274b0]   (active, names: '|':_UIButtonBarButton:0x136d27280 )>",

    "<NSLayoutConstraint:0x600000a79400 'IB_Trailing_Trailing' H:[_UIModernBarButton:0x136d274b0]-(8)-|   (active, names: '|':_UIButtonBarButton:0x136d27280 )>"

)

Will attempt to recover by breaking constraint 

<NSLayoutConstraint:0x600000a79810 UIImageView:0x136d28790.width <= _UIModernBarButton:0x136d274b0.width   (active)>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.

  • The deployment target is iOS 16.

Add a Comment

Accepted Reply

These constraints are not managed by you, and so there is nothing you can do to resolve the issue. Feel free to file a bug if you like.

Replies

These constraints are not managed by you, and so there is nothing you can do to resolve the issue. Feel free to file a bug if you like.

i have the same issue i filed a feedback, but you should also file a feedback, im not too concerned about breaking constraints especially with apple provided api's and it still shows correctly / no ui glitches, but they should be reported