Как увеличить высоту UIButton в соответствии с текстом заголовка?

Мне нужно увеличить высоту UIButton в соответствии с его названием.

Изображение, демонстрирующее проблему, приведено ниже

введите здесь описание изображения


person user2160335    schedule 14.06.2013    source источник
comment
возможный дубликат. /вопросы/4135032/   -  person Amar    schedule 14.06.2013


Ответы (2)


Это полностью проверено, как вы сказали, динамическая высота

myButton=[UIButton buttonWithType:UIButtonTypeRoundedRect];
myButton.titleLabel.numberOfLines=0;
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
NSString *titleOfButton=@"this is the very launch soon title here u can pass as long as big string";
[myButton setTitle:titleOfButton forState:UIControlStateNormal];
CGSize constraint1=CGSizeMake(150.0f, 5000.0f);
CGSize size1=[titleOfButton sizeWithFont:[UIFont systemFontOfSize:14.0f] constrainedToSize:constraint1 lineBreakMode:NSLineBreakByWordWrapping];
[myButton setFrame:CGRectMake(10,50,150, size1.height+20)];
[self.view addSubview:myButton];
person Vivek Sehrawat    schedule 14.06.2013
comment
@downvoter-не могли бы вы объяснить причину понижения этого ответа? - person Vivek Sehrawat; 14.06.2013
comment
sizeWithFont теперь устарел. Заменить на NSDictionary *attributes =@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue" size:15]}; CGSize size1 = [firstTitle sizeWithAttributes:attributes]; - person Helen Vasconcelos; 09.09.2014
comment
Что делать, если есть Autolayout и нет рамки кнопки? - person Kampai; 22.01.2016
comment
@Kampai- В этом случае не ограничивайте высоту кнопки. - person Vivek Sehrawat; 25.01.2016

Используйте этот код для помощи

UIFont font = myButton.titleLabel.font;
CGSize textsize = [myButton.titleLabel.text sizeWithFont:font constrainedToSize:CGSizeMake(myButton.frame.size.width,999) lineBreakMode:UILineBreakModeTailTruncation]; 

[myButton setFrame:CGRectMake(myButton.frame.origin.x,myButton.frame.origin.y,myButton.frame.size.width, textsize.height)];
person Ishu    schedule 14.06.2013