我正在构建一个使用UIButton
中的自定义字体的tvOS应用。
我注意到.Normal
和.Focused
UIControlState
中的descenders被剪裁了,如下图所示:
我尝试调整contentEdgeInsets
和titleEdgeInsets
,但都没有修正错误。
答案 0 :(得分:1)
当然,在我写这个问题时,我记得答案了!
一个解决方案:子类UIButton
并覆盖方法titleRectForContentRect
和contentRectForBounds
,如下所示:
/// A subclass of UIButton that uses the full bounds of the button for the label (so that text isn't clipped)
public class FullFrameTitleButton: UIButton {
override public func titleRectForContentRect(contentRect: CGRect) -> CGRect {
return contentRect
}
override public func contentRectForBounds(bounds: CGRect) -> CGRect {
return bounds
}
}
唯一剩下的位:将标题标签的文字居中:
let button = FullFrameTitleButton(type: .System)
button.titleLabel?.textAlignment = .Center