2010-05-18 45 views
4

我想滚动内容,而不使用UIScrollView在后台滚动图像。如何滚动内容而不使用UIScrollView在后台滚动图像?

我正在使用IB并将FileOwner视图设置为指向滚动视图(图像视图是滚动视图的子项)。我已经将图像高度设置为960像素。

我还设置滚动内容大小在拥有此的UIView

  • (无效)viewDidLoad中{ 的vierController的UIScrollView * tempScrollView =(的UIScrollView *)self.view; tempScrollView.contentSize = CGSizeMake(320,960); }

我的问题是,图片只出现与内容一起移动。

我试着拿出viewDidLoad中的设置,但滚动停止功能。

我也尝试更改图像的位置,并将其放置在VIEW下而不是Scoll View(通过滚动视图是VIEW子级的方式),但导致应用程序中断(终止错误)。

任何意见,将不胜感激。

回答

9

最简单的(和正确的方法)是一个背景图片设置为您的UIScrollView

UIImage *img = [UIImage imageNamed:@"image.png"]; 
[scrollView setBackgroundColor:[UIColor colorWithPatternImage:img]]; 
+8

谢谢。它比我有的更好,但内容和图像一起滚动。无论如何保持背景图像静态,只移动滚动视图的内容? – 2010-05-19 00:12:31

1

感谢。这非常有帮助。

我要补充的一件事(如果它是显而易见的,但是对于新来的平台(即我)来说,它花了一点时间来玩)。

我把代码从“未设置”的例子,我设置了contentSize = CGSizeMake在的UIViewController的viewDidLoad中,IE中:

// Setup the Scroll View 
UIScrollView *tempScrollView=(UIScrollView *)self.view; 
tempScrollView.contentSize=CGSizeMake(320, 720); 

// Set Stationary Background, so that while the user scroll the background is 
// fixed. 
UIImage *img = [UIImage imageNamed:@"bg-body.jpg"]; 
[tempScrollView setBackgroundColor:[UIColor colorWithPatternImage:img]]; 

于是,我走进了视图控制器的.xib文件后,并在UIScrollView里面的UIView中,我将背景颜色设置为“清除颜色”。

我确定在设置UIScrollView的背景的同时,有一种方法可以通过代码来完成此操作,但至少您可以通过IB来完成此操作。

杰森

4

最简单的方法是设置的UIScrollView(的UIImageView和UIScrollView的UIView的下)后面的UIImageView的,让你的UIScrollView的背景颜色一样清晰颜色由詹森提及。通过这种方式,您可以滚动内容而无需使用UIScrollView在后台滚动图像。