【问题标题】:UIButton with custom background loses title具有自定义背景的 UIButton 失去标题
【发布时间】:2014-08-25 19:28:48
【问题描述】:

我试图创建一个自定义按钮,但是设置图像后,我注意到标题消失了,它认为这是因为我在按钮上添加了一个图像,它与标题重叠。

UIImage *pickerBg = [UIImage imageNamed:@"btn_picker.png"];
UIImage *pickerBg_highlighted = [UIImage imageNamed:@"btn_picker_highlighted.png"];

[projectBtn setImage:pickerBg forState:UIControlStateNormal];
[projectBtn setImage:pickerBg_highlighted forState:UIControlStateHighlighted];

还有其他方法可以做到这一点吗?

【问题讨论】:

  • 将图片设置为按钮后添加标题。即 [projectBtn setImage:pickerBg forState:UIControlStateNormal]; [projectBtn setImage:pickerBg_highlighted forState:UIControlStateHighlighted];
  • 我已经尝试过了,但似乎没有帮助:[projectBtn setTitle:@"test" forState:UIControlStateNormal];

标签: uibutton


【解决方案1】:

使用setBackgroundImage,而不是setImage

【讨论】:

    【解决方案2】:
    UIImage *pickerBg = [UIImage imageNamed:@"btn_picker.png"];
    UIImage *pickerBg_highlighted = [UIImage imageNamed:@"btn_picker_highlighted.png"];
    [projectBtn setBackgroundImage:pickerBg forState:UIControlStateNormal];
    [projectBtn setBackgroundImage:pickerBg_highlighted forState:UIControlStateHighlighted];
    [projectBtn setTitle:@"aTitle" forState:UIControlStateNormal];
    

    使用它来设置带有标题的图像。

    【讨论】:

      【解决方案3】:

      使用您需要的标题创建一个 UILabel,然后将其作为子视图添加到您的 UIButton。

      【讨论】:

      • 确实有效,一开始也是我的想法,但我希望有一个更简单的解决方案。
      • 它会改变,它是一个触发 UIPicker 的按钮,所以它会根据选择器中选择的内容而改变
      【解决方案4】:

      当你创建一个UIButton时,使用setImage设置ButtonImage会改变title的位置,titleText和image在同一层级,titleText在image后面,所以你可以setBackImage,image在titleText后面,但是,图像会像按钮一样紧张。

      【讨论】:

        猜你喜欢
        • 2011-09-10
        • 1970-01-01
        • 2016-04-07
        • 2013-04-14
        • 2012-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-06
        相关资源
        最近更新 更多