具有背景图案的大型UIScrollView失败 [英] Large UIScrollView with background pattern fails
问题描述
我有一个UIScrollView,它具有非常大的内容视图,它是一个书架,上面有大约1000个项目,当滚动视图的内容高度超过16000px时,它显示黑色背景,并且所有图形重叠/融合在一起.>
这是示例代码
-(void)viewDidLoad {[super viewDidLoad];//无效int sizeForContent = 20000;//可以工作//sizeForContent = 10000;UIScrollView * scroll = [[UIScrollView分配] initWithFrame:CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height)];UIView * subView = [[UIView分配] initWithFrame:CGRectMake(0,0,self.view.frame.size.width,sizeForContent)];subView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"wood.jpg"]];[scroll addSubview:subView];[subView版本];scroll.contentSize = CGSizeMake(self.view.frame.size.width,sizeForContent);[self.view addSubview:scroll];[滚动发布];}
有人知道为什么会这样吗?我认为这与内存限制有关,但似乎并没有占用太多内存.
我知道我可以直接设置scrollview背景颜色,而无需添加子视图并设置其背景,但是我需要将scrollview背景保留为颜色.
如果想查看,可以从 http://cl.ly/2i3F3q0G1j3q433n0f1E 中获得基本的xcode项目问题.
任何帮助或解释都将不胜感激.
我通过创建具有图案背景的视图并将滚动视图添加为具有 [UIColor clearColor]
背景的子视图来解决此问题.
I have a UIScrollView with a very large content view, it's a bookshelf with around 1000 items on it, when the scroll views content becomes more than around 16000px high it shows a black background and all graphics overlap/blend together.
Here is the sample code
- (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];
}
Does anyone know why this happens? I assume it is something to do with memory limits but it doesn't seem to be using much memory.
I know I could set the scrollview background color directly instead of adding a subview and setting the background of that but I need to leave the scrollview background as a color.
You can get the basic xcode project from http://cl.ly/2i3F3q0G1j3q433n0f1E if you want to see the issue.
Any help or explanations greatly appreciated.
I solved it by creating view with pattern background, and adding scroll view as subview with [UIColor clearColor]
background.
这篇关于具有背景图案的大型UIScrollView失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!