2013-07-12 3 views
1

UIScrollview에서 UIImageSubview를 중앙에 배치하는 방법은 이미지를 동적으로 uiscrollview에로드하므로 이미지가 uiscrollview의 화면 가운데에 표시되어야하는 Uiscrollview에서 이미지를 선택합니다.UIScrollview의 중앙에 UIImageSubview 포스팅

내 이미지 폭은 65이며, 화면의 폭은 내가
[scrollView1 setContentOffset:CGPointMake(130, 0) animated:YES];
있는 ScrollView 단지 130 위치로 이동, 화면의 중앙에 선택이 끝난 이미지의 위치를 ​​설정하는 문제에 직면하고, 320입니다. 이런 식으로하고 싶지 않아, 하위 뷰를 중앙에 표시해야한다.

스크린 샷을보고이 문제를 해결하는 방법을 알려주세요.

UIScrollview

+0

당신이 같이 할 수있는 [scrlView setContentOffset : CGPointMake를 ([[UIScreen mainScreen] applicationFrame] .size.width/2, 0)] 그래서 오프셋은 화면 중앙에있게됩니다. – Gyanendra

+0

맞아요! 하지만 내가 선택한 이미지가 센터에 있지 않을 것입니다. scrollview가 가운데에있을 것입니다. Screeen의 중심에 선택된 이미지를 선택해야합니다. – krish

+0

@krish, 내 답변에 코드가 확장되어 있습니다 .. – foundry

답변

0

방법에 대한
(의사)
contentOffset.x = image.center.x - (screenwidth/2)

( 확장 ...)

UIImageView* imageView = //imageview that was selected 
    CGFloat screenWidth = 320; 
    CGPoint offset = scrollView1.contentOffset; 
    offset.x = imageView.center.x - screenWidth/2; 
    [scrollView1 setContentOffset:offset animated:YES]; 

나는 이미 셀에 대한 포인터를 얻는 방법을 알아 냈다고 가정합니다 반사 된 이미지 ...

( 이 더욱 확대 ...가)

여기

은 선택의 용이성을 위해 버튼 대신 이미지를 사용하여, 동일한의 밖으로 완전히 가공 된 버전입니다 ... 단지 (그것을 시도 새 단일 뷰 프로젝트의 viewContoller]로 복사)하면 작업 한 것을 볼 수 있습니다. 그래도 문제가 지속된다면 이미지를 센터링을 위해 선택한 이미지로 식별하는 방법이라고 생각합니다. 당신은 ... 당신의 코드를 보여주는 질문을 업데이트해야합니다

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    CGRect frame = self.view.bounds; 
    frame.size.height = frame.size.height/2; 
    self.scrollView = [[UIScrollView alloc] initWithFrame:frame]; 
    [self.view addSubview:self.scrollView]; 
    [self.scrollView setContentSize:CGSizeMake(2000,self.scrollView.bounds.size.height)]; 
    [self.scrollView setDelegate:self]; 
    for (int i = 1; i < 20; i++) { 
     UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
     NSString* title = [NSString stringWithFormat:@"button %d",i]; 
     [button setTitle:title forState:UIControlStateNormal]; 
     button.bounds = CGRectMake(0,0,80,60); 
     button.center = CGPointMake(i*100+50,self.scrollView.bounds.size.height/2); 
     [button addTarget:self 
        action:@selector(buttonPressed:)  
     forControlEvents:UIControlEventTouchUpInside]; 
     [self.scrollView addSubview:button]; 
    } 
} 

- (void)buttonPressed:(UIButton*)sender 
{ 
    CGFloat x = sender.center.x - self.scrollView.bounds.size.width/2.0f; 
    [self.scrollView setContentOffset:CGPointMake(x,0) animated:YES]; 
} 
+0

나는이 문법이 정확하다고 생각하지 않는다. 자세한 내용을 적어주세요. – krish

+0

그 의사 코드는 ...하지만 또한 오류를 발견했습니다. 업데이트 된 버전을 확인하십시오. – foundry

+0

양쪽에 따라 가운데에 맞추려면 'y'에 대해 동일한 작업을 수행해야합니다. – ipinak

관련 문제