Iphone UIControlStateNormal的发件人映像

Iphone UIControlStateNormal的发件人映像,iphone,objective-c,ios,uibutton,sender,Iphone,Objective C,Ios,Uibutton,Sender,tl;dr:我正在创建一个UIImageView,它与发送者具有相同的图像。我正在想办法做这件事 我正在尝试获取发件人的图像。以下是我获取发件人的代码: UIButton *playSelectionTag = (UIButton *)sender; if (playSelectionTag.tag == 5) { /* [popInToolbar release]; [all release]; [world release]; [polit

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]]];

    }

UIButton的imageView是UIImageView。UIImageView中的图像是UIImage。 因此,将其转换为字符串将不起作用


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

如果它不起作用,那么试试下面的方法

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

替换:

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


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

这不起作用,我将继续创建数组并像那样使用它。谢谢:)[UIImage alloc]initWithCGImage是正确的构造函数。给它一些时间,因为它会给你在代码上的很多灵活性。
popUpPlay.image = [playSelectionTag imageForState:UIControlStateNormal];