UI按钮标题上的自定义字体被剪切在单词之上

Cyr*_*ard 20 objective-c uibutton ios

我已经上传了一个自定义字体,并使用以下代码将此字体应用于UI按钮的标题

videoButton.titleLabel.font = [UIFont fontWithName:@"LaurenScript" size:20];
Run Code Online (Sandbox Code Playgroud)

问题是标题被剪裁在第一个字母的顶部(见下图).我尝试在UIlabel上使用相同的字体,它工作正常,所以它不是字体的问题.我还尝试使用更改rectFrame

[videoButton.titleLabel setFrame:CGRectMake(0, 0, 300, 600)];
Run Code Online (Sandbox Code Playgroud)

但那没有做任何事情.有谁知道如何解决这个问题?干杯

在此输入图像描述

Ant*_*ine 42

我有一个类似的问题,在标题标签的顶部切断了分音符.我创建了一个UIButton子类并使用此代码来解决问题:

-(void)layoutSubviews
{
    [super layoutSubviews];

    CGRect frame = self.titleLabel.frame;
    frame.size.height = self.bounds.size.height;
    frame.origin.y = self.titleEdgeInsets.top;
    self.titleLabel.frame = frame;
}
Run Code Online (Sandbox Code Playgroud)


Har*_*rji 27

在"界面"构建器中选择按钮并检查控件部分中的设置垂直对齐面板下面是示例:

在此输入图像描述


Wil*_*ich 9

不确定这对任何人来说是否仍然存在问题,但我发现(使用自定义字体)上述解决方案并未最终解决问题,尤其是对于UIButton仅通过编程方式创建的自定义.

以下是我设法解决此问题的方法,特别是1行解决了剪辑问题:

UIButton *button = [[UIButton alloc] init];
button = [UIButton buttonWithType:UIButtonTypeCustom];

[button setTitle:@"Nice!" forState:UIControlStateNormal];
[button setFont:[UIFont fontWithName:<CUSTOM FONT NAME> size:buttonWidth/3.0f]];
button = CGRectMake(0, 0, <WIDTH>, <HEIGHT>);
Run Code Online (Sandbox Code Playgroud)

这是解决裁剪的线:

[button setContentVerticalAlignment:UIControlContentVerticalAlignmentFill];
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助任何仍然被卡住的人.快乐的编码!


小智 5

使用带有图像和带有自定义字体的文本的按钮时遇到同样的问题。一切都必须垂直居中对齐。并且图像未拉伸。这对我来说效果很好。

btn.contentVerticalAlignment = .fill
btn.contentMode = .center
btn.imageView?.contentMode = .scaleAspectFit
Run Code Online (Sandbox Code Playgroud)