방법에 대한
(의사)
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];
}
당신이 같이 할 수있는 [scrlView setContentOffset : CGPointMake를 ([[UIScreen mainScreen] applicationFrame] .size.width/2, 0)] 그래서 오프셋은 화면 중앙에있게됩니다. – Gyanendra
맞아요! 하지만 내가 선택한 이미지가 센터에 있지 않을 것입니다. scrollview가 가운데에있을 것입니다. Screeen의 중심에 선택된 이미지를 선택해야합니다. – krish
@krish, 내 답변에 코드가 확장되어 있습니다 .. – foundry