Como ampliar para o centro com uma visualização de rolagem?

Tínhamos implementado o toque para aumentar o zoom e agora decidimos usar ícones que aumentam o zoom no centro do que está sendo exibido no momento e gostaríamos de reutilizar o código que tínhamos para o nosso toque para aumentar o zoom, pois queremos o mesmo efeito, mas agora não sabemos o que passar como ponto centra

Estamos usando o

(CGRect) zoomRectForScale: escala (flutuante) comCenter: (CGPoint) center

method, que costumava aceitar um ponto cg central no reconhecedor de gestos que usamos para aumentar o zoom; no entanto, como não usamos mais o reconhecedor de gestos, teremos que descobrir em que ponto cg passá-lo. Além disso, esse método funcionou para o zoom de toque, então não acho que seja aqui que estamos tendo o problema.

Tentamos fazer isso

    centerPoint = [scrollView contentOffset];
    centerPoint.x += [scrollView frame].size.width / 2;
    centerPoint.y += [scrollView frame].size.height / 2;
    CGRect zoomRect = [self zoomRectForScale:newScale withCenter:centerPoint];

Qual deve calcular o centro atual e depois passá-lo para zoomRectForScale, no entanto, não funciona (aumenta o zoom para a direita do centro

Acho que o problema provavelmente tem algo a ver com o fato de estarmos passando o centro da imagem antes da aplicação do zoom, e talvez devamos estar passando um centro em escala. Alguém tem alguma experiência com isso ou tem alguma idéia de como devemos calcular o centr

questionAnswers(1)

yourAnswerToTheQuestion