Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone 2G上的自定义UIButton图像_Iphone_Objective C_Cocoa Touch - Fatal编程技术网

iPhone 2G上的自定义UIButton图像

iPhone 2G上的自定义UIButton图像,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,我有一个自定义的UIButton,里面有一个png。我的应用程序中有很多这样的功能,无论在哪里,它们都工作得很好 在一个位置,它们位于UIView内部,UIView是UITableview的headerView 每当我按下按钮时,只有iPhone 2G上的图像框变黑,而UIButton的其余部分(有标题…)看起来很好。走出视图控制器并返回后,“按下”图像显示良好 你知道为什么吗?我的图像在应用程序文件中被压缩 谢谢 更新#1: 我使用了一些有人在stackoverflow上慷慨提供的代码,这些代

我有一个自定义的UIButton,里面有一个png。我的应用程序中有很多这样的功能,无论在哪里,它们都工作得很好

在一个位置,它们位于UIView内部,UIView是UITableview的headerView

每当我按下按钮时,只有iPhone 2G上的图像框变黑,而UIButton的其余部分(有标题…)看起来很好。走出视图控制器并返回后,“按下”图像显示良好

你知道为什么吗?我的图像在应用程序文件中被压缩

谢谢

更新#1: 我使用了一些有人在stackoverflow上慷慨提供的代码,这些代码从背景色生成一个图像,这样您就可以通过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;

}有点长,但按钮是否设置为“不透明”?通常,除非事先知道它是不透明的,否则请将其关闭。

已解决

这行代码似乎给iOS 3.1.3(我假设所有3.1)带来了问题

一旦你把图案图像放大至少1个像素,你就一切都好了。例如:

CGRect rect = CGRectMake(0.0f, 0.0f, 5.0f, 5.0f);
解决了这个问题

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