Ранее мы реализовали касание для увеличения, и теперь мы решили вместо этого использовать значки, которые будут увеличивать центр того, что отображается в данный момент, и мы хотели бы повторно использовать код, который был у нас для увеличения, так какмы хотим того же эффекта, но теперь мы не знаем, что передать в качестве центральной точки.
Мы используем
(CGRect) zoomRectForScale: масштаб (с плавающей точкой) withCenter: (CGPoint) center
, который используется для приема центральной точки cgpoint от распознавателя жестовчто мы использовали для масштабирования крана;тем не менее, поскольку мы больше не используем распознаватель жестов, нам нужно выяснить, какую точку cgpoint следует передать.Кроме того, этот метод работал для масштабирования касания, поэтому я не думаю, что именно здесь у нас проблема.
Мы пытались сделать это
centerPoint = [scrollView contentOffset];
centerPoint.x += [scrollView frame].size.width / 2;
centerPoint.y += [scrollView frame].size.height / 2;
CGRect zoomRect = [self zoomRectForScale:newScale withCenter:centerPoint];
Что должно вычислить текущий центри затем передайте его zoomRectForScale, однако это не сработает (масштаб будет справа от центра).
Я думаю, что проблема, вероятно, как-то связана с тем фактом, что мы передаем центр изображения до применения масштабирования, и, возможно, мы должны пропускать масштабированный центр.Кто-нибудь имеет какой-либо опыт с этим, или есть какие-либо идеи о том, как мы должны рассчитывать центр?