Удалить подчеркивание на UIButton в iOS 7
любой знает, как убрать UIButton
подчеркнуть, что появляется из-за доступности?
(Я знаю, что это потому, что пользователь включил "формы кнопок")
Как я могу удалить это программно или установив какое-либо свойство в Xcode?
9 ответов
Проверьте ниже 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
.
The Text
настройки должны быть в Attributed
. Выберите текст, нажмите на элемент fond удалить подчеркивание, установив его в none
.
позвольте мне разобраться. Apple добавила функцию специальных возможностей, которая позволяет пользователям отмечать кнопки подчеркиванием, если они хотят.
вы хотите способ победить эту функцию, специально разработанную, чтобы помочь людям с ограниченными возможностями использовать свои устройства, когда функция-это то, что пользователь должен попросить.
Почему?
Это, скорее всего, невозможно с помощью стандартных кнопок. Если вы нашли способ сделать это, Apple, скорее всего, отклонит ваше приложение, потому что он побеждает системную функцию, предназначенную для помощи инвалидам.
Итак, ответ: Не делайте этого.
установите фоновое изображение на кнопку.
[yourBtnHere setBackgroundImage:[[UIImage alloc] init] forState:UIControlStateNormal];
вы должны перейти в Настройки > Общие > Доступность и включить/выключить формы кнопки, а затем вернуться к приложению в вопросе. Вы должны видеть только подчеркивания и фигуры, когда этот элемент управления включен, и это должно указать, какие кнопки, которые выглядят как текст, на самом деле доступны для тех, кто нуждается в доступности.
"формы кнопок" - это новая опция доступности в iOS 7.1. Если пользователь хочет, чтобы эта опция активирована, вы ничего не можете сделать. Это выбор пользователя.
Если кнопка подчеркнута из-за опции формы кнопки доступности, Вы можете установить заголовок кнопки с помощью изображения, но не по тексту. Просто создайте изображение, где будет нарисован текст, и установите его на кнопку. В этом случае iOS не может распознать текст и не будет вставлять подчеркивание.
Вы можете рассматривать его как hack, но не как четкое решение.
вы не можете отключить эту функцию доступности.
сделать пользовательский UILabel или UIView с UITapGestureRecognizer если вы действительно хотите избавиться от него.
сначала сделать 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];
чтобы удалить ненужный слой синего цвета из UIButton
симулятор
перейдите в Настройки > Общие > Доступность и выключите формы кнопок, а затем повторно запустите приложение, которое удалит нежелательный синий слой.