2011-09-16 84 views
0

这可能是我的一个愚蠢的错误,但我有3个UIbuttons,其中2个默认隐藏,1个应该在点击时显示2个其他人。我把这种方法在我viewDidLoad中:UIButton没有正确设置alpha

-(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显示这两个按钮的alpha值为1.0。我确定我正确地使用了@propertied和@synthesized checkbutton,就像xbutton一样。

我在做什么错?

此外,一个侧面的问题:[checkbutton setAlpha][self.checkbutton setAlpha]之间有什么区别?

呃......我的错。我的图像被命名为checkmark.png,而不是checkbutton.png。感谢@DanielRHicks回答我的问题。

+0

的'self'和参考'@ synthesized'性能的非'self'版本之间的差异是可以忽略的 - 第一个用途而第二个getter则直接引用实例变量。当然ASSIGNMENT的区别是很大的,因为第一个管理保留(如果这样定义的话),而第二个设置实例变量而没有任何保留管理。 –

+0

@Daniel当你说出任务时,你是指任何值的设置? (像setAlpha)或者只是当你分配和初始化它? – Cole

+0

'self.object = someObject;'相当于'setObject(someObject);'。但是'object = someObject;'不等同于其他任何一个,并且如果属性'object'被保留,那么最后一个赋值将无法保留它(并且同样无法保留属性中的前一个值),导致到一个可能的存储错误和崩溃。 –

回答

1

隐藏和α是不同

3 UIbuttons,其中2的默认情况下隐藏,和1这是应该点击时以显示2个其他。

你说他们是默认

隐藏也许你应该试着

self.checkbutton.hidden = NO

0

你最初设置的隐藏属性是?如果是的话,你也将不得不做

self.xbutton.hidden = NO 
上的按钮