No se puede actualizar zoomScale de UIScrollView

Estoy intentando asignar newScale para zoomScale de un UIScrollView si zoomScale == oldScale y la asignación zoomScale = newScale no funciona.

Aquí está el código de testing en mi patio de recreo.

 import UIKit let scrollView = UIScrollView() let contentView = UIView() scrollView.frame.size = CGSizeMake(200, 200) contentView.frame.size = CGSizeMake(400, 400) var zoomScale: CGFloat { get { return scrollView.zoomScale } set { scrollView.zoomScale = newValue } } var minimumZoomScale: CGFloat { get { return scrollView.minimumZoomScale } set { scrollView.minimumZoomScale = newValue } } func updateMinimumZoomScale(withScale newScale: CGFloat) { let oldScale = minimumZoomScale minimumZoomScale = newScale if zoomScale == oldScale { // zoomScale = 1, newScale = 0.1 // zoomScale = newScale zoomScale == newScale // false } } updateMinimumZoomScale(withScale: 0.1) 

Y aquí hay una captura de pantalla del resultado.

Captura de pantalla del resultado del patio de recreo

En la captura de pantalla, el resultado de zoomScale == newScale es false justo después de la asignación zoomScale = newScale .

Realmente no tengo idea de por qué esto está sucediendo.

Incluso probé su código en el patio de recreo y el proyecto real, pero no pareció funcionar. El problema es que debe configurar el delegado para su vista de desplazamiento antes de configurar la escala de zoom. El delegado se establece de esta manera.

 scrollView.delegate = self 

Cuando intenta establecer la escala del zoom para la vista de desplazamiento, se -viewForZoomingInScrollView método -viewForZoomingInScrollView , y si su delegado es nil, ese método no será invocado. Por lo tanto, no establecerá escala de zoom. Puede probar la misma muestra en el proyecto Xcode con configuration de delegado antes de cambiar la escala del zoom y funcionará.

Para mí, el problema fue con la conversión automática de Xcode a Swift 3. El delegado se configuró correctamente, pero los methods de delegado no se formatearon correctamente.

Intereting Posts