UIButton не устанавливает альфа должным образом - PullRequest
0 голосов
/ 16 сентября 2011

Это, вероятно, моя глупая ошибка, но у меня есть 3 кнопки UI, 2 из которых скрыты по умолчанию, и 1, которая должна отображать 2 других при нажатии. Я вызываю этот метод в моем viewDidLoad:

-(void) initButtons
{
self.checkbutton = [[UIButton alloc] initWithFrame:CGRectMake(20, 330, 80, 70)];
self.checkbutton.backgroundColor = [UIColor clearColor];
[self.checkbutton setBackgroundImage:[UIImage imageNamed:@"checkbutton"] forState:UIControlStateNormal];
self.checkbutton.enabled = NO;
self.checkbutton.alpha = 0.0;
[self.view addSubview:self.checkbutton];

self.xbutton = [[UIButton alloc] initWithFrame:CGRectMake(230, 330, 70, 70)];
self.xbutton.backgroundColor = [UIColor clearColor];
[self.xbutton setBackgroundImage:[UIImage imageNamed:@"X.png"] forState:UIControlStateNormal];
self.xbutton.enabled = NO;
self.xbutton.alpha = 0.0;
[self.view addSubview:self.xbutton];
}

И когда моя видимая кнопка нажата, этот метод называется:

-(void) showbuttons
{
    self.checkbutton.enabled = YES;
    [[self checkbutton] setAlpha:1.0];

    self.xbutton.enabled = YES;
    [[self xbutton] setAlpha:1.0];

    NSLog(@"xbutton alpha: %f", [[self xbutton] alpha]);
    NSLog(@"checkbutton alpha: %f", [[self checkbutton] alpha]);
}

Что происходит, когда я нажимаю видимую кнопку, появляется только 1 кнопка. (xbutton) Они должны быть закодированы точно так же, я не знаю, что не так. Имеющиеся у меня NSLogs показывают, что обе кнопки имеют альфа-значение 1,0. Я уверен, что я @ проверял и @ синтезировал флажок правильно, это так же, как кнопка x.

Что я делаю не так?

Кроме того, дополнительный вопрос: в чем разница между [checkbutton setAlpha] и [self.checkbutton setAlpha]?

Тьфу ... Моя вина. Мое изображение было названо checkmark.png, а не checkbutton.png. Спасибо @DanielRHicks за ответ на мой дополнительный вопрос.

Ответы [ 2 ]

1 голос
/ 16 сентября 2011

hidden и alpha различаются

3 кнопки UI, 2 из которых скрыты по умолчанию, и 1, которая должна отображать 2 других при нажатии.по умолчанию скрыто

возможно вам стоит попробовать

self.checkbutton.hidden = NO

0 голосов
/ 16 сентября 2011

Вы устанавливаете скрытое свойство изначально на ДА?если это так, вам также придется сделать

self.xbutton.hidden = NO

на кнопках

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