1

コンテンツをスクロールしている間、背景画像を同じ場所に固定するように設定するにはどうすればよいですか。コンテンツをスクロールすると、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

1 に答える 1

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];
于 2012-07-28T09:05:55.640 に答える