【问题标题】:UIButton + italic font = clippingUIButton + 斜体字体 = 剪裁
【发布时间】:2011-10-01 06:04:48
【问题描述】:

问题是当我使用像 Helvetica Oblique 这样大小大于 13 的斜体字体时,UIButton 会剪辑标题尾部(最后大约 1-2 个像素)。有人知道这个问题的解决方案吗?

【问题讨论】:

  • 将换行模式设置为除尾截断以外的其他内容。
  • 按钮够大吗?!如果你 设置文本和字体之前调用 sizeToFit,这是行不通的。
  • 请提供更多详细信息,但我认为您的情况是“无论您制作的按钮有多宽,任何文本在制作成斜体时都会被剪辑在 UIButton 中” - 如果是这种情况,我不会不知道解决方法,这是一个错误,报告它
  • 展示问题的图片也会有所帮助。
  • 这是一个非常古老的问题。我相信它已经过时了。致@bshirley - 是的,不管按钮有多宽。

标签: iphone ios uibutton clipping italic


【解决方案1】:

子类 UIButton 类并覆盖 setTitle 为:

- (void)setTitle:(NSString *)title forState:(UIControlState)state { [super setTitle:[NSString stringWithFormat:@" %@ ", title] forState:state]; }

这将在文本的两侧添加额外的空格。 简单易行。

【讨论】:

  • 好主意。一种更简单的方法是在标准 UIButton 的标题前后放置一个空格。
  • 很抱歉,但这不是一个真正的解决方案,充其量只是一种解决方法,并且在标题中填充空格以解决布局/绘图问题可能会在未来困扰您。
【解决方案2】:

我的脚本字体有这个问题。不幸的是,没有一种简单的方法可以解决它。我尝试了一切,然后最终继承了 UIButton。您可以在此处阅读实现的详细信息:http://blog.tinymission.com/post/subclassing-uibutton

基本上,最简单的做法是将您自己的 UILabel 放在 UIButton 之上,但对我来说,这不会很好,所以我将 UIButton 子类化。

【讨论】:

    【解决方案3】:

    你可以通过设置 Uibutton 属性来设置斜体字体

    button.titleLabel?.font = UIFont.italicSystemFont(ofSize: 17)

    【讨论】:

      【解决方案4】:
      1. 创建UIButton 的自定义子类
      2. 覆盖方法:- (CGRect)titleRectForContentRect:(CGRect)contentRect

      例子:

      - (CGRect)titleRectForContentRect:(CGRect)contentRect
      {
          CGFloat textX = 0;
          CGFloat textY = 0;
          CGFloat textW = self.width;
          CGFloat textH = contentRect.size.height;
          return CGRectMake(textX, textY, textW, textH);
      }
      

      【讨论】:

        猜你喜欢
        • 2016-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-28
        • 1970-01-01
        • 2021-07-17
        • 1970-01-01
        • 2014-01-25
        相关资源
        最近更新 更多