在iOS 7中删除UIButton上的下划线

z8dt9xmd  于 2023-05-08  发布在  iOS
关注(0)|答案(7)|浏览(157)

任何人都知道如何删除UIButton下划线出现,因为辅助功能?
(我知道这是因为用户打开了“按钮形状”)

我如何通过编程或在Xcode中设置一些属性来删除它?

6gpjuf90

6gpjuf901#

我就直说了吧苹果增加了一个辅助功能,允许用户在需要时用下划线标记按钮。
你想要一种方法来击败这个功能,专门设计来帮助残疾人使用他们的设备,当功能是用户必须要求的。
为什么?
很可能无法使用标准按钮。如果你真的找到了一种方法,苹果很可能会拒绝你的应用程序,因为它破坏了一个旨在帮助残疾人的系统功能。
所以答案是:别这样

mkshixfv

mkshixfv2#

设置按钮的背景图像。

[yourBtnHere setBackgroundImage:[[UIImage alloc] init] forState:UIControlStateNormal];
uidvcgyl

uidvcgyl3#

检查以下code

NSMutableAttributedString *attrStr = [[yourBtnHere attributedTitleForState:UIControlStateNormal] mutableCopy];//or whatever the state you want
[attrStr enumerateAttributesInRange:NSMakeRange(0, [attrStr length])
                            options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired
                         usingBlock:^(NSDictionary *attributes, NSRange range, BOOL *stop)
{
    NSMutableDictionary *mutableAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes];
    [mutableAttributes removeObjectForKey:NSUnderlineStyleAttributeName];
    [attrStr setAttributes:mutableAttributes range:range];
}];

·与检查员/IB:选择UIButton
显示Attributes Inspector
Text设置应在Attributed中。选择文本,点击喜欢的项目删除下划线设置它在none

9nvpjoqh

9nvpjoqh4#

“按钮形状”是iOS 7.1中的新辅助功能选项。如果用户希望激活此选项,则您无能为力。这是用户的选择。

zpf6vheq

zpf6vheq5#

如果按钮是下划线由于辅助功能按钮形状选项,那么你可以设置按钮标题使用图像,而不是文本。简单地创建图像,文本将被绘制,并将其设置为按钮。在这种情况下,iOS无法识别其中的文本,也不会插入下划线。
你可以把它看作是黑客,但不是明确的解决方案。

1tu0hz3e

1tu0hz3e6#

您无法关闭此辅助功能。
如果你真的想摆脱它,可以创建一个自定义的UILabel或UIView with UITapGestureRecognizer

hmae6n7t

hmae6n7t7#

首先从已设置的按钮获取attribute string

NSMutableAttributedString *attrStr = [[yourBtnHere  attributedTitleForState:UIControlStateNormal] mutableCopy];

使用removeAttribute删除属性,如下所示:

[attrStr removeAttribute:NSUnderlineStyleAttributeName range:NSMakeRange(0,[attrStr length])];
[attrStr addAttribute: NSUnderlineStyleAttributeName value: [NSNumber numberWithInt:0] range: [attrStr length]];

使用addAttribute重置属性,如下所示:

UIColor *textBtncolor = [UIColor blackColor];
[attrStr addAttribute:NSForegroundColorAttributeName value:textBtncolor range:NSMakeRange(0, attrStr.length)];

现在设置属性字符串在您的按钮

[yourBtnHere setAttributedTitle:[attrStr copy] forState:UIControlStateNormal];

相关问题