5

I am trying to programmatically manipulate a UILabel so that it has a dynamic width.

I found that using sizeToFit() does this exact behavior. Now as this label becomes my navigationItem.titleView. I want it to have a maximum size, which can't be extended.

It is important to fit 2 barButtonItems in the navigationItem. For instance: a backBarButton on the left, an addButton on the right.

Is there a way to change the sizeToFit() method?

JVS
  • 1,994
  • 3
  • 16
  • 28

2 Answers2

4

You can use sizeThatFits: see docs here.

You have to specify a CGSize that you want to fit in.

Marius Fanu
  • 5,989
  • 1
  • 15
  • 19
0

to set maximum width use preferredMaxLayoutWidth than set the maximum size like that bounds.width - 120

for example:

    yourLabel.sizeToFit()
    yourLabel.numberOfLines = 0
    yourLabel.preferredMaxLayoutWidth = bounds.width - 120
Faris
  • 947
  • 1
  • 10
  • 16