【问题标题】:UIButton different alignment for title and imageUIButton标题和图像的不同对齐方式
【发布时间】:2015-02-05 09:38:19
【问题描述】:

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

【问题讨论】:

  • 可以给你一些你需要的屏幕截图

标签: ios objective-c uibutton uistoryboard title


【解决方案1】:

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

  1. 设置 UIButton 的 Image 和 Text Inset

【讨论】:

  • 我这样做了,但问题是 inset 是 FIX 值,并且当您应用本地化(例如英语和德语)时,单个单词中的字符数不相同。并且插图始终是固定值。这就是问题所在。
  • 现在您通过编程根据您的文本设置文本插入。计算文本高度并设置“文本插入”。
  • 我设法将它与故事板对齐,并通过一些编码,计算字符串长度,我设置了正确的插入。
【解决方案2】:

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

【讨论】:

  • 问题是在附加手势识别器时,选择按钮时文本和图像的灰色外观丢失。
【解决方案3】:

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

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

\n 是一个新行。

【讨论】:

    【解决方案4】:

    相应地调整 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      • 2018-05-18
      相关资源
      最近更新 更多