Ben Williams
Ben Williams

Reputation: 4695

UITabBar selectionIndicatorImage height on iPhone X

I'm using a selectionIndicatorImage for a UITabBar, which is 49 points high, like this: UITabBar.appearance().selectionIndicatorImage = UIImage(named: "bg-tab-selected")

Works just fine across all devices: enter image description here

Except for the iPhone X:

enter image description here

I've tried setting the images to be vertically sliced only in the asset catalog, but that doesn't seem to have the desired effect. For some reason it also stretches horizontally? And there is a bit of padding on top.

enter image description here

Any ideas how I can fix this?

Upvotes: 12

Views: 5339

Answers (2)

Coltrane
Coltrane

Reputation: 165

Adding 1 point to the top or bottom of your tabBar's selectionIndicatorImage Insets seems to "fix" this for now.

tabBar.selectionIndicatorImage?.resizableImage(withCapInsets: UIEdgeInsets.init(top: 1, left: 0, bottom: 0, right: 0))

Upvotes: -1

Huy Hoang
Huy Hoang

Reputation: 872

I had the same issue. I "fixed" it by subtracting the height by 1 pixel, so 48 pixels for the height of the selection image. It seems to be an iPhone X bug.

Upvotes: 39

Related Questions