我有一個UIScrollView具有非常大的內容視圖,它是一個書架上有大約1000個項目,當滾動視圖內容變得超過16000px左右高時,它顯示黑色背景和所有圖形重疊/融合在一起。大背景圖案UIScrollView失敗
下面是示例代碼
- (void)viewDidLoad {
[super viewDidLoad];
// Doesn't work
int sizeForContent = 20000;
// Does Work
//sizeForContent = 10000;
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
UIView *subView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, sizeForContent)];
subView.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"wood.jpg"]];
[scroll addSubview:subView];
[subView release];
scroll.contentSize = CGSizeMake(self.view.frame.size.width, sizeForContent);
[self.view addSubview:scroll];
[scroll release];
}
有誰知道爲什麼會這樣?我認爲這與內存限制有關,但似乎並沒有使用太多內存。
我知道我可以直接設置滾動視圖背景顏色,而不是添加子視圖並設置背景,但我需要將scrollview背景作爲顏色。
如果您想查看問題,可以從http://cl.ly/2i3F3q0G1j3q433n0f1E獲取基本xcode項目。
任何幫助或解釋非常感謝。
一個方法可以是將圖像設置爲視圖的背景並將scrollView的背景色設置爲清除顏色......但是在這種情況下,您只需要放棄當前發生的背景圖像的滾動功能場景。 – Tobias 2011-03-05 15:36:48