2014-09-18 113 views
0

在我的應用程序中,我試圖在 它被選中,填充或留空時,在我的輸入字段中更改圖標(圖像視圖)的阿爾法。更改圖片阿爾法

我已經寫了這段代碼,但沒有任何事情發生,我確信我寫了圖像名稱,因爲它們在我的圖像目錄中命名。

示例代碼;

- (IBAction)passwordInputTab:(id)sender { 

    UIImageView *imageLockIcon = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"lock-icon.png"]]; 
    imageLockIcon.alpha = 1; 
    //self.txtPassword.alpha = 1; 

    if ([[self.txtUsername text] isEqualToString:@""]) { 
     //self.txtUsername.alpha = 0.5; 
     UIImageView *imageUserIcon = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"user-icon.png"]]; 
     imageUserIcon.alpha = 0.5; 
    } 
} 

- (IBAction)usernameInputTab:(id)sender { 

    UIImageView *imageUserIcon = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"user-icon.png"]]; 
    imageUserIcon.alpha = 1; 

    NSLog(@"==> %@", imageUserIcon); 

    //userIcon.alpha = 0.1; 

    if ([[self.txtPassword text] isEqualToString:@""]) { 

     UIImageView *imageLockIcon = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"lock-icon.png"]]; 
     imageLockIcon.alpha = 0.5; 
     NSLog(@"==> %@", imageLockIcon); 
     //self.txtPassword.alpha = 0.5; 
    } 
} 

Log;

2014-09-18 21:47:10.882 ...[1280:60b] ==> <UIImageView: 0x14e8dd90; frame = (0 0; 17 16); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x14e8de10>> 
2014-09-18 21:47:10.884 ...[1280:60b] ==> <UIImageView: 0x14d66770; frame = (0 0; 12 16); alpha = 0.5; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x14da43d0>> 

回答

1

您正在創建新的UIImageView,如果您在InterfaceBuilder中創建了它們,您需要爲它們中的每一個創建一個@property並在故事板/ xib上鍊接IBOutlets。

如果你想通過程序生成的UIImageViews你只不忘補充:

[self.view addSubview:YOUR_IMAGEVIEW]; 

例子:

[self.view addSubview:imageUserIcon]; 
+0

感謝Marck!由IBOUtlet解決! :) – directory 2014-09-18 21:22:25

0

我看到你正在創建一個UIImageView,但它沒有被添加到視圖層次結構中。如果您嘗試更改現有UIImageView上的Alpha,則需要通過IBOutlet提供對其的引用,以調整其屬性。