改变图像alpha

时间:2014-09-18 19:53:47

标签: objective-c iphone xcode transparency

在我的应用程序中,我试图在输入字段中更改图标(图像视图)的alpha 它被选中,填充或留空。

我已经编写了这段代码,但没有发生任何事情,我确信我在图像目录中命名了图像名称。

示例代码;

- (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>>

2 个答案:

答案 0 :(得分:1)

您正在创建新的UIImageViews,如果您在InterfaceBuilder中创建它们,则需要为它们中的每一个创建@property并将故事板/ xib上的IBOutlet链接起来。

如果要以编程方式创建UIImageViews,则只能忘记添加:

[self.view addSubview:YOUR_IMAGEVIEW];

示例:

[self.view addSubview:imageUserIcon];

答案 1 :(得分:0)

我看到你正在创建一个UIImageView但它没有被添加到视图层次结构中。如果您尝试更改现有UIImageView上的alpha,则需要通过IBOutlet提供对它的引用以调整其属性。