2012-03-07 54 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在那裏遇到問題。