2013-04-20 53 views
1

我在.h文件中下面的代碼:的iOS:問題修改按鈕的顏色

#import <UIKit/UIKit.h> 
@interface SCLoginViewController : UIViewController 
@property (weak, nonatomic) IBOutlet UIButton *btnLogin; 
@end 

和.m文件下面的代碼:

- (void)viewDidAppear:(BOOL)animated 
{ 

    [super viewDidAppear:animated]; 

    // Do any additional setup after loading the view from its nib. 
    // Add gradient to the buttons 

    btnLogin.layer.cornerRadius = 10; 

    CAGradientLayer *gradientLayer = [CAGradientLayer layer]; 
    gradientLayer.frame = btnLogin.layer.bounds; 

    gradientLayer.colors = [NSArray arrayWithObjects: 
          (id)[UIColor colorWithWhite:1.0f alpha:0.1f].CGColor, 
          (id)[UIColor colorWithWhite:0.4f alpha:0.5f].CGColor, 
          nil]; 

    gradientLayer.cornerRadius = btnLogin.layer.cornerRadius; 
    [btnLogin.layer addSublayer:gradientLayer]; 

    // Add shadow 
    btnLogin.layer.shadowColor = [UIColor darkGrayColor].CGColor; 
    btnLogin.layer.shadowOpacity = 1.0; 
    btnLogin.layer.shadowOffset = CGSizeMake(2.0, 2.0); 
} 

這是怎麼按鍵坐落在屏幕:

enter image description here

東西是可怕的錯誤,但。我知道我缺少一些簡單的東西,但無法弄清楚。我創建了一個名爲btnLogin的常規插座,但我嘗試對其進行的任何更改都無效。該按鈕是圓角矩形按鈕。我試過自定義按鈕,並沒有幫助。

謝謝!

+0

你是如何合成'btnLogin'?你有沒有與調試器檢查「btnLogin」是否爲零? – 2013-04-20 02:14:26

+0

我在.m文件中有以下內容: @synthesize btnLogin; ,看起來像是零。 btnLogin \t UIButton * \t 0x00000000 – Darko 2013-04-20 02:35:31

+0

附加一個調試器並檢查'btnLogin'是否爲零。如果是這樣,那麼當xib文件在運行時被實例化時,你的插座沒有被正確地創建。再次按住Ctrl鍵將您的按鈕拖動到文件所有者。 – 2013-04-20 02:50:17

回答

1

從圖像中,我看到你沒有建立從nib文件上的btnLogin到文件的所有者 - .h文件的連接。因此,下面的這一行與您試圖進行更改的按鈕沒有任何關聯。

@property (weak, nonatomic) IBOutlet UIButton *btnLogin; 

一旦做出,適當的連接時,它應顯示btnLogin名稱,其中引用奧特萊斯爲您提供的圖片上。

+0

你是對的。我不知道爲什麼發生了......我剛剛重新創建它,它在那裏,它正在工作!謝謝! – Darko 2013-04-20 02:54:05