Iphone 将UIImageSubview放置在UIScrollview的中心

Iphone 将UIImageSubview放置在UIScrollview的中心,iphone,Iphone,如何将UIImageSubview定位在UIScrollview的中心,我在UIScrollview中动态加载图像,因此当我在UIScrollview中选择任何图像时,该图像应显示在UIScrollview的屏幕中心 我的图像宽度为65,屏幕宽度为320,设置choosen图像在屏幕中心的位置时遇到问题, [scrollView1 setContentOffset:CGPointMake130,0动画:是]; 滚动视图只需滚动到130位置。我不希望这样,我希望子视图应该显示在中心 请看屏幕截图,

如何将UIImageSubview定位在UIScrollview的中心,我在UIScrollview中动态加载图像,因此当我在UIScrollview中选择任何图像时,该图像应显示在UIScrollview的屏幕中心

我的图像宽度为65,屏幕宽度为320,设置choosen图像在屏幕中心的位置时遇到问题, [scrollView1 setContentOffset:CGPointMake130,0动画:是]; 滚动视图只需滚动到130位置。我不希望这样,我希望子视图应该显示在中心

请看屏幕截图,告诉我如何解决这个问题

怎么样 伪码 contentOffset.x=image.center.x-屏幕宽度/2

扩展的

我想你已经解决了如何获取指向所选图像的指针

进一步扩展

这里是一个完整的版本相同,使用按钮,而不是图像,以便于选择。。。尝试将其复制到一个新的单视图项目的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];所以偏移量将在屏幕的中心。是的,没错!但是我选择的图像将不在中心,滚动视图将在中心,我希望选择的图像应该显示在中心screeen@krish,我在回答中扩展了代码,请看更新。我认为这个语法不正确。你能详细写一下吗?那是伪代码。。。但我也发现了一个错误,请参阅更新版本请记住,如果您想使y沿两侧居中,则需要对y执行相同的操作。@ipinak-true,只有我从krish的代码和插图中假设scrollview仅水平滚动,并且图像的y值已设置appropriately@krish,查看我的更新。您的代码很好,但在将来,请注意,最好使用代码更新您的问题,而不是将其放入注释中。我怀疑您的问题在于您希望居中显示的选定图像的标识。您可以更新问题,显示代码的该部分。
- (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];
}