'imageEdgeInsets' was deprecated in iOS 15.0

Viewed 16009

I'm getting the warning:

'imageEdgeInsets' was deprecated in iOS 15.0

When setting UIButton imageEdgeInsets like so:

button.imageEdgeInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)

I tried setting imageEdgeInsets like so:

UIImage(named: "filter")?.withRenderingMode(.alwaysTemplate).withAlignmentRectInsets(UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10))

Both where top, left, right and bottom are positive or negative values, no luck. Anyone who knows the version of

imageEdgeInsets

That's not deprecated in iOS 15? All help is appreciated, Kind regards :)

2 Answers

iOS 15 Apple introduced 3 new options to control padding and insets.

  1. .titlePadding : Padding between the title and subtitle labels.
  2. .imagePadding : Padding between the button’s image and text.
  3. .contentInsets: Padding from the button’s content area to its bounds.

Using the above option you can manage and set your button style according.

enter image description here

You can check this article for more. Source and Image

So your code should be like this

var configuration = UIButton.Configuration.filled()
configuration.title = "Title"
configuration.image = UIImage(systemName: "swift")
configuration.titlePadding = 10
configuration.imagePadding = 10
configuration.contentInsets = NSDirectionalEdgeInsets(top: 10, leading: 10, bottom: 10, trailing: 10)

Swift now comes default with different types of buttons that you can setup up from iOS 15 onwards. Use UIButton.Configuration to set up your button. For your case, you can use,

config.imagePadding = 5

An example can be seen below:


var filled = UIButton.Configuration.filled()
filled.title = "Filled button"
filled.buttonSize = .large
filled.subtitle = "With subtitle even"
filled.image = UIImage(systemName: "bubble.left.fill")
filled.imagePlacement = .trailing
filled.imagePadding = 5

let button = UIButton(configuration: filled, primaryAction: nil)

enter image description here

Image and Code credits to nemecek.be

Related