Я добавляю MTKView
к UIScrollView
для увеличения и панорамирования, но MTKView
выглядит размытым, когда я увеличиваю его.У кого-нибудь есть какой-нибудь совет?
Так что я использую UIPanGestureRecognizer
и UIPinchGestureRecognizer
для окончательного увеличения и панорамирования, но я понятия не имею, чтобы увеличить с anchorPoint
, и когда я выполняю панорамирование, как я могу сохранитьрасстояние после сковороды?Я могу панорамировать изображение и ограничить resultMatrix
, но у панорамирования есть некоторые проблемы.
(void)handlePan:(UIPanGestureRecognizer *)recognizer {
CGPoint point = [recognizer translationInView:recognizer.view];
matrix.panMatrix = (matrix_float4x4) {
simd_make_float4(1, 0, 0, 0),
simd_make_float4(0, 1, 0, 0),
simd_make_float4(0, 0, 1, 0),
simd_make_float4((point.x + self.transX) / (self.frame.size.width / 2), - (point.y + self.transY) / (self.frame.size.height / 2), 0, 1),
};
matrix.resultMatrix = simd_mul(matrix.panMatrix,matrix.scaleMatrix);
if(matrix.resultMatrix.columns[3].x >= (self.totalScale - 1)) {
matrix.resultMatrix.columns[3].x = self.totalScale - 1;
self.transX = (self.totalScale - 1) * (self.frame.size.width / 2);
}
if(matrix.resultMatrix.columns[3].y >= (self.totalScale - 1)) {
matrix.resultMatrix.columns[3].y = self.totalScale - 1;
self.transY = -(self.totalScale - 1) * (self.frame.size.height / 2);
}
if(matrix.resultMatrix.columns[3].x <= -(self.totalScale - 1)) {
matrix.resultMatrix.columns[3].x = - (self.totalScale - 1);
self.transX = -(self.totalScale - 1) * (self.frame.size.width / 2);
}
if(matrix.resultMatrix.columns[3].y <= -(self.totalScale - 1)) {
matrix.resultMatrix.columns[3].y = - (self.totalScale - 1);
self.transY = (self.totalScale - 1) * (self.frame.size.height / 2);
}
if(recognizer.state == UIGestureRecognizerStateEnded) {
self.transX = self.transX + point.x;
self.transY = self.transY + point.y;
}
}