Согласно this answer, я могу использовать intrinsicContentSize
для автоматического расчета ширины/высоты. Вот что я сделал, но результат 0, 0
Как рассчитать ширину и высоту UIButton с учетом текста и шрифта?
class AutoSizeUIButton: UIButton{
override func intrinsicContentSize() -> CGSize {
return CGSizeMake(self.frame.size.width, self.titleLabel!.frame.size.height)
}
}
networkButton.setTitle("something-here", forState: .Normal)
networkButton.titleLabel?.font = UIFont(name: "HelveticaNeue", size: 20.0)!
let networkSize = networkButton.intrinsicContentSize()
print("button size", networkSize.width, networkSize.height) //prints 0.0, 0.0
я делаю что-то не так? Примечание. Я не хочу использовать ограничения. Я просто хочу напечатать ширину/высоту.
Попробуйте этот код UIFont * font = [UIFont fontWithName: @ "Helvetica" size: 30]; NSDictionary * userAttributes = @ {NSFontAttributeName: font, NSForegroundColorAttributeName: [UIColor blackColor]}; NSString * text = @ "hello"; ... const CGSize textSize = [text sizeWithAttributes: userAttributes]; –