2012-03-07 52 views

回答

12

回答我的问题(我花了几天的调试这一点,所以希望这样可以节省别人一些时间;)):

的根本原因涉及到使用图案的UIColor(通过+[UIColor colorWithPatternImage:])作为背景使用相同图像的UIImageView上的UIView上的颜色。

实施例:

UIImageView *imageView = [[UIImageView alloc] initWithImage:anImage]; 
    [_containerView addSubview:imageView]; 

    UIColor *patternColor = [UIColor colorWithPatternImage:anImage]; 
    UIView *patternView = [[UIView alloc] initWithFrame:frame]; 
    [patternView setBackgroundColor:patternColor]; 
    [_containerView addSubview:patternView]; 

两种观点绘制黑色,并且似乎有一个缓存问题,即,直到应用程序被暂停的图像的所有其它用途绘制黑色/恢复。

我申请问题#10795514与苹果报告这一点,但它看起来像它制作成5.1。这个问题的减少,请访问:http://iccir.com/public/radar/Radar10795514.zip

我发现的唯一的解决方法是展平视图层次,并在同一个视图中绘制图形图像的两倍。

+1

+1 - 感谢分享! – Till 2012-03-07 22:25:18

+0

真正的问题是colorWithPatternImage不适的UIImageView在iOS5中,你应该使用显然一个UIView .... – anders 2013-10-02 17:56:39

0

我在iPad我在那里使用colorWithPatternImage上这样一个UIScrollView具有与iOS 5.1这样的问题:

scrollView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"YOURIMAGE.jpg"]]; 

这工作在IOS 6(例如iPad2和以后),但是,在原稿iPad的,在那里你可以只更新iOS 5.1.1,这将显示白色或你的地方定义的另一个纯色。解决方法是使用在您设置了滚动的backgroundView这样一个稍微不那么有吸引力的方法:

scrollView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"YOURIMAGE.png"]]; 

我在的iOS 6和iOS 5.1测试这一点,所以它也应该,如果你适用于iPhone在那里遇到问题。