UIButton 标签显示 0 宽度

Posted

技术标签:

【中文标题】UIButton 标签显示 0 宽度【英文标题】:UIButton Label Showing 0 Width 【发布时间】:2015-10-12 19:12:59 【问题描述】:

我有一个自定义按钮类,我正在我的故事板文件中设置文本。文本是一个简单的“更新电子邮件地址”,在应用的整个生命周期内都不会改变。

但是,我有一个想要添加到按钮的图像,当我这样做时,我通过以下方式在公共按钮类中的方法中设置图像:

[self setTintColor:[UIColor whiteColor]];
    UIImage *icon = [UIImage imageNamed:iconName];
    CGFloat iconWidth = icon.size.width;
    [self setImage:icon forState:UIControlStateNormal];
    [self setWidth:self.width+iconWidth*2];
    [self setOriginX:self.x-iconWidth];
    [self setTitleEdgeInsets:UIEdgeInsetsMake(0, -iconWidth*2, 0, 0)];

    CGFloat leftMargin = 10;
    CGFloat moveLeft = self.titleLabel.frame.size.width + self.titleLabel.x + leftMargin;
    [self setImageEdgeInsets:UIEdgeInsetsMake(0, moveLeft , 0, 0)];

但是,通过这种方式设置,titleLabel 的宽度似乎为 0,因此图像未设置在按钮上的正确位置。

我对为什么会发生这种情况的想法可能是因为我从未以编程方式设置文本,只在情节提要中设置文本,虽然这真的没有意义,但我只知道了。

有没有人看到这里有什么问题?如果您需要任何其他代码,请告诉我,我可以发布相关信息。

【问题讨论】:

【参考方案1】:

你什么时候做这个?也许您在加载资源之后但在设置所有元素的框架之前尝试执行此操作。

【讨论】:

以上是关于UIButton 标签显示 0 宽度的主要内容,如果未能解决你的问题,请参考以下文章

Swift - UIButton

如何更改自定义 UIButton 的边框宽度

UIbutton忘记宽度和高度

UiButton 一个“仅界面生成器”解决方案,以响应方式调整标题标签的字体

将 UIButton 字体大小调整为宽度

使用 UILabel 和 UIButton 显示用户标签