发件人图像为UIControlStateNormal

时间:2011-09-05 07:38:55

标签: iphone objective-c ios uibutton sender

tl; dr:我正在创建一个与发件人具有相同图像的UIImageView。我试图找出如何做到这一点。

我试图获取发件人的图像。这是我的代码来获取发件人:

UIButton *playSelectionTag = (UIButton *)sender;



 if (playSelectionTag.tag == 5) {

    /*
    [popInToolbar release];

    [all release];
    [world release];
    [politics release];
    [TVMovies release];
    [aboutText release];
    [aboutTrueFalse release];
    [scoreText release];

    [spaceBar release];
    [done release];
    */

    popUpPlay = [[UIImageView alloc]init];

    popUpPlay.frame = CGRectMake(playSelectionTag.frame.origin.x, playSelectionTag.frame.origin.x, playSelectionTag.frame.size.width, playSelectionTag.frame.size.height);

    [popUpPlay setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@", playSelectionTag.imageView.image]]];

    }

2 个答案:

答案 0 :(得分:2)

替换:

[popUpPlay setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@", playSelectionTag.imageView.image]]];

使用:

popUpPlay.image = [playSelectionTag imageForState:UIControlStateNormal];

您接受的解决方案会以突出显示的状态为您提供发件人的图像。

答案 1 :(得分:1)

用于UIButton的imageView是UIImageView。和UIImageView中的图像是UIImage。 因此,在字符串中转换它将不起作用。

一种可能的方法是使用[[UIImage alloc] initWithCGImage:[playSelectionTag.imageView.image CGImage]]

如果不起作用,请尝试按照。

跟踪您在按钮中使用的图像。您可以通过保持图像数组并将图像名称存储在与playSelectionTag.tag相同的索引来实现此目的。

相关问题