2010-08-15 98 views
0

我有一个自定义的UIButton,里面有一个png。我在我的应用程序中有不少其中的一些,并且他们似乎在任何地方都能正常工作。iPhone 2G上的自定义UIButton图像

在一个位置,它们在UIView里面,它是一个UITableview的headerView。

每当我按下它们,只有在iPhone 2G的图像框变黑,而其余的UIButton(它有一个标题...)看起来不错。当你离开视图控制器并回来后,“按下”图像显示正常。

任何想法为什么?我的图像压缩在应用程序文件中。

谢谢!

更新#1: 我使用了一些代码,有人在这里提供了一个在背景颜色生成的图像,所以你可以把它通过backgroundImage属性使用。我使用它,这似乎是造成这个问题。每当我按下我的按钮,它就会使用我的图像,并在显示正确生成的图像时呈现黑色框而不是它。

- (UIImage *)imageWithColor:(UIColor *)color { 
CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f); 
UIGraphicsBeginImageContext(rect.size); 
CGContextRef context = UIGraphicsGetCurrentContext(); 

CGContextSetFillColorWithColor(context, [color CGColor]); 
CGContextFillRect(context, rect); 

UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

return image; 

}

回答

0

解决!

这行代码似乎导致iOS 3.1.3(我假设所有3.1)的问题。

CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f); 

一旦你使图案图像变大至少1个像素,你都很好。例如:

CGRect rect = CGRectMake(0.0f, 0.0f, 5.0f, 5.0f); 

解决问题。

0

一个长镜头的位,但该按钮设置为“不透明”?一般来说,关闭它,除非事先知道它是不透明的。

+0

试过了,没有工作。建议更新#1。 – schone 2010-08-16 01:25:07