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