【问题标题】:Multiple line with underline in UIButton title in iOS-5iOS-5中UIButton标题中带下划线的多行
【发布时间】:2014-02-07 11:30:49
【问题描述】:

我想在 iOS 中创建以下带下划线的按​​钮链接。

我已经用过UIUnderlineButton

所以它给了我以下输出。

请帮我实现像第一张图片这样的带下划线的按​​钮。

【问题讨论】:

  • 您可以使用带有属性标题的 UIButton。我不确定。
  • 尝试setAttributedTitle:forState 与NSUnderlineStyleAttributeName 的属性字符串
  • 我可以在 ios5 中使用 setAttributedTitle:forState 吗?
  • 不是,这个方法是iOS6引入的。

标签: ios iphone ios6 ios7 uibutton


【解决方案1】:

对于 iOS6 及更高版本,这应该可以解决问题,使用属性字符串:

NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:@"yourTextButton"];
[attrStr addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:NSMakeRange(0, [attrStr length])];
[yourButton setAttributedTitle:attrStr forState:UIControlStateNormal];
[[yourButton titleLabel] setNumberOfLines:0];//Multiple Lines

【讨论】:

    【解决方案2】:

    为什么不使用 UILabel 和 UITapGestureRecognizer 当你的文本这么长并且你不需要任何额外的类时。

    【讨论】:

    • 用户点击UILabel时不能设置高亮颜色。
    【解决方案3】:

    看看这个。我希望这是你想要的。

    NSMutableAttributedString *titleString = [[NSMutableAttributedString alloc] initWithString:@"Tap here...."];
        [titleString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(0, [titleString length])];
        [titleString addAttribute:NSForegroundColorAttributeName value:[UIColor blackColor] range:NSMakeRange(0, [titleString length])];
        [_button setAttributedTitle: titleString forState:UIControlStateNormal];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 2016-03-21
      • 1970-01-01
      相关资源
      最近更新 更多