UIButton具有正确的图像和居中的文本

时间:2017-02-02 15:01:14

标签: ios objective-c uibutton

我需要创建一个UIButton,右边有一个图像,中间有一个文本。像这样:

enter image description here

感谢" ios Developer"的答案,我已经编写了一个代码,通过在按钮上添加图像和文本并更改边缘插图来实现我想要的内容:

+ (void)addImageWithName:(NSString *)imageName onButton:(UIButton *)btn {
    [btn setImage:image forState:UIControlStateNormal];
    [btn setImage:image forState:UIControlStateHighlighted];

    CGFloat margin = 10.f;
    btn.imageEdgeInsets = UIEdgeInsetsMake(0.f, btn.frame.size.width - image.size.width - margin, 0.f, 0.f);

    btn.titleEdgeInsets = UIEdgeInsetsMake(0.f, -image.size.width - margin, 0.f, 0.f);
}

使用以下代码添加文本:

[btn setTitle:@"hello world" forState:UIControlStateNormal];

但是如果文字太长,它就会超出图像而超出按钮。我怎么能预知这个?

enter image description here

1 个答案:

答案 0 :(得分:1)

如果您正在使用Xcode 8.2.1,那么您可以找到Button Content Insets,Title Insets&故事板ViewController中的大小检查器部分中的图像插入。如果您使用的是xcode 7或更低版​​本,则可以在属性检查器部分找到该选项。您可以设置标题插入&安培;图像按要求插入。