UIbutton标题上的自定义字体被剪裁在单词的顶部

我已经上传了一个自定义的字体,并使用下面的代码在UIbutton的标题上应用此字体

videoButton.titleLabel.font = [UIFont fontWithName:@"LaurenScript" size:20]; 

问题在于标题正在第一个字母的顶部(见下面的照片)。 我在UIlabel上尝试了相同的字体,它工作正常,所以它不是字体的问题。 我也试着改变使用rectFrame

 [videoButton.titleLabel setFrame:CGRectMake(0, 0, 300, 600)]; 

但那没有做任何事情。 有没有人有我如何解决这个问题的线索? 干杯

在这里输入图像说明

我有一个类似的问题,在标题标签的顶部切除了一个隔离区。 我做了一个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; } 

在界面构build器中selectbutton,并检查在控制部分中设置垂直alignment面板下面是例子:

在这里输入图像说明

不知道这是否仍然是任何人的问题,但我发现(使用自定义字体)上述解决scheme并没有最终解决这个问题,特别是对于一个自定义的UIButton完全编程创build。

以下是我如何解决这个问题,特别是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>); 

这是解决剪报的线:

 [button setContentVerticalAlignment:UIControlContentVerticalAlignmentFill]; 

希望这能帮助那些仍然被困住的人。 快乐的编码!

有这个(悲伤的)解决scheme: https : //stackoverflow.com/a/10200908/352628

我有一个类似的问题。 看来标题标签是非常无法控制的,为了得到控制,你需要注入一个UILabel子视图到button…这让我伤心:(

我在swift 2.1中试用这个,我从Antoine的回答中修改了这个代码。 这可能不是很好的代码,但现在解决了我的问题。 你应该让自己变得更好。

 import UIKit class CustomUIButton: UIButton { override func layoutSubviews() { if var titleFrame : CGRect = titleLabel?.frame{ titleFrame.size = self.bounds.size titleFrame.origin = CGPointZero self.titleLabel!.frame = titleFrame self.titleLabel!.textAlignment = .Center } } } 

使用具有自定义字体的图像和文本的button具有相同的问题。 一切都必须垂直居中alignment。 而且图像不被拉伸。 这对我来说很好。

 btn.contentVerticalAlignment = .fill btn.contentMode = .center btn.imageView?.contentMode = .scaleAspectFit