Как скрыть заголовок UIButton после события onclick - PullRequest
0 голосов
/ 21 августа 2010

Когда я нажимаю кнопку, ее название должно быть скрыто.Я не хочу устанавливать в заголовке пустую строку @ "".Итак, как я могу это сделать?

Ответы [ 9 ]

4 голосов
/ 15 июля 2011

Просто лучшее решение, которое я использую сейчас:

Принятый ответ не позволяет мне повторно использовать имя, если мне нужно, поэтому я использую таким образом:

-(void)SomeButtonPressed {
    someButton.titleLabel.textColor = [UIColor clearColor];
}

Я думаю, что лучше просто держать ярлык кнопки невидимым.

2 голосов
/ 21 августа 2010

Если вы хотите, чтобы он исчез, когда палец находится на кнопке,

[button setTitle:@" " forState:UIControlStateHighlighted];

Если вы хотите переключаться между отображением и отсутствием,

[button setTitle:@" " forState:UIControlStateSelected];
[button setTitle:@" " forState:UIControlStateSelected|UIControlStateHighlighted];

и затем установите button.selected = !button.selected в действии кнопки.

Я использую один пробел вместо пустой строки, потому что иногда пустая строка имеет специальную обработку, что делает ее эквивалентной нулю. Если пустая строка работает, вы можете использовать ее вместо этого.

2 голосов
/ 21 августа 2010

Почему вы не хотите установить заголовок на пустую строку? Просто сохраните значение в локальном поле и установите заголовок кнопки на @ "", и все будет хорошо.

В вашем .h:

NSString *someLocalField;

в вашем .m:

-(void)SomeButtonPressed {
  someLocalField = someButton.text;
  someButton.text = @"";
}

Таким образом, если вам когда-нибудь понадобится восстановить текст кнопки, вы можете сделать это:

someButton.text = someLocalField

Если вы хотите сделать это для нескольких кнопок, вы всегда можете использовать NSDictionary и связать строковые значения с кнопками.

1 голос
/ 24 октября 2015
// Hide text
button.titleLabel.layer.opacity = 0.0f;

// Show text
button.titleLabel.layer.opacity = 1.0f;
1 голос
/ 21 августа 2010

Я не пробовал этого, но если вам нужно, чтобы текст заголовка оставался прежним, но при этом скрывался от пользователя, вы можете установить цвет шрифта [UIColor clearColor];

0 голосов
/ 20 декабря 2013

с использованием button.titleLabel.hidden = YES не будет работать (по крайней мере, на iOS 7).

Я использовал:

// remove the button since hiding it doesn't work
[button.titleLabel removeFromSuperview];
// put back when you're done
[button addSubview:button.titleLabel];
0 голосов
/ 21 августа 2010

Вы пробовали button.titleLabel.hidden = YES?

0 голосов
/ 21 августа 2010

Я думаю, здесь вы можете найти решение, просто сделайте метку, содержащую скрытый текст.

button.titleLabel.hidden = YES;

Вы можете поместить это в IBAction, связанный в InterfaceBuilder с Touch.Событие Inside Up, связанное с вашей кнопкой

0 голосов
/ 21 августа 2010

Простое скрытие названия звучит немного странно и не очень похоже на интерфейс Apple. Вы также можете просто установить кнопку, которая будет скрыта, и тогда все это исчезнет. Если вы хотите, чтобы заголовок был единственным, что исчезает (имейте в виду, что кнопка все еще будет работать в этом состоянии, просто не будет заголовка), тогда вы всегда можете назначить цвет фона someButton.currentTitleColor = someButton.backgroundColor;, чтобы текст исчезал (вам также может понадобиться установить цвет тени).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...