titleLabel在UIButton中无法正确调整高度

时间:2016-01-13 03:47:20

标签: ios swift uibutton

由于某些原因,我无法在UIButton中正确使用titleLabel。

宽度适合,但不适合身高(由于baselineAdjustment而应该可以使用)

let btn = UIButton(frame: CGRect(x: (CGFloat(index) * sizePerChar + marginWidthFirstLine / 2), y: marginHeight/2, width: sizePerChar, height: sizePerChar))
btn.setTitle("P", forState: .Normal)
btn.setTitleColor(UIColor.blackColor(), forState: .Normal)
btn.titleLabel!.font = UIFont(name: "KohinoorDevanagari-Regular", size: 150)
btn.titleLabel!.adjustsFontSizeToFitWidth = true
btn.titleLabel!.minimumScaleFactor = 0.1
btn.titleLabel!.baselineAdjustment = .AlignCenters
btn.titleLabel!.textAlignment = .Center
btn.layer.cornerRadius = 10
btn.backgroundColor = UIColor.yellowColor()
self.view.addSubview(btn)

结果如下:

字母m较小且宽度适合,但所有其他字母的高度都太大了......

enter image description here

3 个答案:

答案 0 :(得分:1)

应该有效:

btn.titleLabel!.adjustsFontSizeToFitWidth = false

答案 1 :(得分:0)

设置字体后重置高度。

NSDictionary * attributes = [NSDictionary dictionaryWithObjectsAndKeys:yourButton.titleLabel.font,NSFontAttributeName,nil];

CGSize size = [@" Dummy text" sizeWithAttributes:属性];

yourbutton.frame.size.height = size.height;

答案 2 :(得分:0)

这可能与您使用的字体有关。

UIFont(name: "KohinoorDevanagari-Regular", size: 150)

尝试使用systemFont并测试它是否正常工作。 其他明智的应该是有效的