在UISCROLLVIEW中滚动内容时背景图像也会滚动

我如何设置背景图像保持固定在同一个地方,而我滚动内容。现在我滚动的内容意味着我的背景图像也保持movingbackground图像滚动同时滚动内容在UISCROLLVIEW..My示例代码张贴如下。

My Code here - (void)viewDidLoad { NSLog(@"Welcome to Home Page"); [super viewDidLoad]; // self.view.backgroundColor=[[UIColor alloc]initWithPatternImage:[UIImage imageNamed:@"bg-image.png"]]; UIImage * img = [UIImage imageNamed:@"bg-image.png"]; [scrollView setBackgroundColor:[UIColor colorWithPatternImage:img]]; // Do any additional setup after loading the view, typically from a nib. } - (void)loadView { CGRect fullScreenRect=[[UIScreen mainScreen] applicationFrame]; scrollView=[[UIScrollView alloc] initWithFrame:fullScreenRect]; scrollView.contentSize=CGSizeMake(1400, 100); UIImageView *tempImageView2 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"sti01.png"]]; tempImageView2.frame=CGRectMake(10, 60, 200, 200); [scrollView addSubview:tempImageView2]; UIImageView *tempImageView3 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"sti02.png"]]; tempImageView3.frame=CGRectMake(240, 60, 200, 200); [scrollView addSubview:tempImageView3]; UIImageView *tempImageView4 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"sti03.png"]]; tempImageView4.frame=CGRectMake(470, 60, 200, 200); [scrollView addSubview:tempImageView4]; UIImageView *tempImageView5 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"sti04.png"]]; tempImageView5.frame=CGRectMake(700, 60, 200, 200); [scrollView addSubview:tempImageView5]; UIImageView *tempImageView6 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"sti05.png"]]; tempImageView6.frame=CGRectMake(930, 60, 200, 200); [scrollView addSubview:tempImageView6]; UIImageView *tempImageView7 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"sti06.png"]]; tempImageView7.frame=CGRectMake(1160, 60, 200, 200); [scrollView addSubview:tempImageView7]; self.view=scrollView; [scrollView addSubview:tempImageView2]; [scrollView addSubview:tempImageView3]; [scrollView addSubview:tempImageView4]; [scrollView addSubview:tempImageView5]; [scrollView addSubview:tempImageView6]; [scrollView addSubview:tempImageView7]; scrollView.userInteractionEnabled = YES; btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.frame = CGRectMake(22, 100, 1800, 500); // [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [btn addTarget:self action:@selector(buttonTest:) forControlEvents:UIControlEventTouchUpInside]; [scrollView addSubview:btn]; } - (IBAction)buttonTest:(id)sender { MSDescriptionpage *aSecondPageController = [[MSDescriptionpage alloc] initWithNibName:@"MSDescriptionpage" bundle:nil]; [self.navigationController pushViewController:aSecondPageController animated:YES]; [aSecondPageController release]; } 

它是滚动的,因为它是滚动视图的背景。 所以当滚动移动时,背景移动。 您可以使滚动视图的背景透明(可能通过将背景颜色设置为[UIColor clearColor]并将opaque设置为NO ),然后将视图放在具有相同框架的滚动视图之后。 这将不会随滚动视图一起移动。 请记住,滚动视图移动他们的内容,而不是自己。 背景是该内容的一部分。

编辑:

改变这个:

 - (void)viewDidLoad { NSLog(@"Welcome to Home Page"); [super viewDidLoad]; self.view.backgroundColor=[[UIColor alloc]initWithPatternImage:[UIImage imageNamed:@"bg-image.png"]]; UIImage * img = [UIImage imageNamed:@"bg-image.png"]; [scrollView setBackgroundColor:[UIColor colorWithPatternImage:img]]; // Do any additional setup after loading the view, typically from a nib. } 

对此:

 - (void)viewDidLoad { NSLog(@"Welcome to Home Page"); [super viewDidLoad]; self.view.backgroundColor=[[UIColor alloc]initWithPatternImage:[UIImage imageNamed:@"bg-image.png"]]; UIImage * img = [UIImage imageNamed:@"bg-image.png"]; [scrollView setBackgroundColor:[UIColor clearColor]]; // Do any additional setup after loading the view, typically from a nib. } 

然后是这样的:

 UIView *customScrollBackground = [[UIView alloc] initWithFrame:scrollView.frame]; customScrollBackground.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"bg-image.png"]]; [customScrollBackground addSubview:scrollView];