UIButton 标题和图像的不同对齐方式

UIButton different alignment for title and image

您好,我正在创建同时显示图像和标题的 UIButton。我希望标题和图像都居中,按钮在图像上方。问题是,由于来自按钮的字符串的本地化,字符串长度正在改变,并且 UIStoryboard 与边缘插入相结合的对齐方式无法正常工作,因为我希望它能正常工作。有人可以帮我指出正确的方向吗?

第一个想法是,你可以构建一个显示图像和文本的 UIView,然后将 UITapGestureRecognizer 附加到它,这将比 UIButton 更灵活。

我不确定,但你可以尝试这样设置标题:

[someButton setTitle:@"\nsome title" forState:UIControlStateNormal];

其中 \n 是一个新行。

相应地调整 titleEdgeInsets 和 imageEdgeInsets

[self.facebookButton setImage:[UIImage imageNamed:@"facebook_icn"] forState:UIControlStateNormal];  
[self.facebookButton setTitle:NSLocalizedString(@"Invite via Facebook1",nil) forState:UIControlStateNormal];
self.facebookButton.titleEdgeInsets = UIEdgeInsetsMake(0.0f, 5.0f, 0.0f, -5.0f);
self.facebookButton.imageEdgeInsets = UIEdgeInsetsMake(0, -10, 0, 0);

设置这两个。 1. 设置UIButton的Align控件

  1. 设置UIButton的图片和文字Inset