Birgit Van Keer
Birgit Van Keer

Reputation: 11

UIButton with configuration gives incorrect intrinsic content size, when not connected to debugger

We create a UIButton by initialising it with a configuration and embedding it within a (horizontal) UIStackView. We set setContentHuggingPriority to required because we want the button to only take up as much space as it actually needs.

    var configuration = UIButton.Configuration.filled()
    configuration.title = "Send to"
    configuration.baseBackgroundColor = .red

    let customButton = UIButton(configuration: configuration)
    customButton.setContentHuggingPriority(.required, for: .horizontal)

When running attached to the debugger, it looks like this:

what it should look like

When we open the app manually by tapping on the icon, i.e. not connected to the debugger, it looks like this:

what it looks like

When I attach the debugger after I launched the app manually and inspect the view hierarchy I see that the intrinsic content size width is 59 instead of 83 (when attached to debugger).

It seems that the intrinsic content size is wrong, but why? Is it a bug at Apple? What could be wrong?

Upvotes: 0

Views: 79

Answers (1)

Birgit Van Keer
Birgit Van Keer

Reputation: 11

Turns out there was nothing wrong with this code. After a long search I found an evil UIButton extension in our project which messed up the intrinsicContentSize (created by previous code owners).

Upvotes: 0

Related Questions