2014-09-18 2 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; 
    } 
} 

로그;

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

새 UIImageViews를 생성하는 경우 InterfaceBuilder에서 생성 한 경우 @property을 작성하고 storyboard/xib에 IBOutlet을 연결해야합니다.

당신은 추가 잊고 프로그래밍 UIImageViews을 만들려면 :

[self.view addSubview:YOUR_IMAGEVIEW]; 

예 :

[self.view addSubview:imageUserIcon]; 
+0

감사 Marck를! IBOUtlet에 의해 해결되었습니다! :) – directory

0

UIImageView를 만들고 있지만보기 계층 구조에 추가되지 않은 것으로 나타났습니다. 기존 UIImageView에서 알파를 변경하려는 경우 IBOutlet을 통해 해당 속성에 대한 참조를 제공해야합니다.