2012-07-28 91 views
1

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

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]; 

} 

回答

4

它是滚动的,因为它是滚动视图的背景。所以当滚动移动时,背景会移动。您可以使滚动视图的背景透明(可能通过将背景颜色设置为[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]; 
+0

,我想插入[UI颜色clearColor]在loadview或视图中加载 – User123 2012-07-28 09:07:32

+0

self.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@“bg-image.png”]];我使用这个评论也为背景图片...但为此也滚动内容的背景移动.. – User123 2012-07-28 09:10:39

+0

看到更新的答案 – Marty 2012-07-28 09:15:49