从[self.view viewWithTag:n]获取UIButton时无法获取UIButton图像;

时间:2012-07-10 17:50:56

标签: objective-c uiview casting uiimage uibutton

我无法获得这段代码只是让UIButton的图像工作。错误消息一直表示tempButt是UIView,它不会响应来电imageForState:
有人可以告诉我为什么以及如何正确地做到这一点? 最后,我想将我得到的图像与另一张图像进行比较,看看它们是否相同。

UIButton* tempButt = (UIButton*)[self.view viewWithTag:tagNum];
UIImage* tempImage = [tempButt imageForState:UIControlStateNormal]; 

2 个答案:

答案 0 :(得分:0)

您确定已将该按钮作为子视图添加到self.view(在xib或代码中)并将其tag属性设置为tagNum持有的值吗?只需检查一次......

我认为你可能在上述某个案例中出错了。

如果它恰好是一个按钮,那么我确定这些调用中的任何一个都应该获得按钮图像..

按钮有两个属性image和backgorundImage ..

获取图像使用

 tempButt.currentImage  (or) [tempButt  imageForState:UIControlStateNormal];

使用

获取backgroundImage
 tempButt.currentBackgroundImage

请注意,只有在您将图像设置为按钮图像时,imageForState方法才有效。

希望这会有所帮助!!

答案 1 :(得分:0)

确保将图像设置为背景图像或将图像设置为图像如果您将图像设置为背景图像试试这个

UIImage * img = [btn backgroundImageForState:UIControlStateNormal];

您可以将图像设置为常图,将另一个图像设置为背景,此代码将获得背景图像