2011-09-16 85 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 
上的按鈕