2011-09-02 161 views
6

我从API下载一些图像到我的ios应用程序,然后显示图像作为按钮背景。这里的代码:iOS图像按钮按下按钮

NSData *imageData = [r responseData]; 
UIImage *image = [UIImage imageWithData:imageData];    
UIBlockButton *imageView = [UIBlockButton buttonWithType:UIButtonTypeCustom];  
[imageView setBackgroundImage:image forState:UIControlStateNormal]; 

这是奇怪的部分。当我按下按钮时,垂直图像(长度小于高度)将旋转90度。有没有人经历过/它是一个错误?

编辑:所以我的服务器旋转状态发送图像。不知何故,UIButton知道在未选中时将其旋转,但在选择它时不会进行相同的更正。

回答

3

添加[imageView setBackgroundImage:image forState:UIControlStateHighlighted];

除非,当然,你更喜欢另一个图像的聚焦状态来模拟实际按下按钮的。在这种情况下,您将使用/中的其他图像而不是“图像”。

但是,你应该摆脱,至少是奇怪的效果。

+0

谢谢。我做到了。我想我更多地问这个问题,看看是否有人知道它为什么会发生。 –

+0

坦率地说,我不知道为什么。这让我想起了我的想法,因为当突出显示状态的图像未设置时,我看到了其他奇怪的事情。原因可能是您下载的图像包含一些方向标签设置为纵向的EXIF数据。但在这种情况下,你可以问为什么它不在正常状态下旋转。 :) –

+0

对我来说,这会导致错误发生的频率稍低,但它仍然发生在大约一半的时间。另一个奇怪的数据点:首次显示按钮时,此代码会使图像在突出显示时正确显示。只有在父视图消失后才会再次出现错误(并且只有一半的时间)。离奇。 – benvolioT