usar una quito quitar pantalla desde desactivar cómo como assistive aparece activar iphone uiscrollview

iphone - una - Cómo habilitar el zoom en UIScrollView



lupa en iphone 8 (6)

¿Cómo se puede activar el efecto de zoom en UIScrollView?


Asegúrese de configurar su viewController como delegar e implementar scrollViews:

func viewForZooming(in scrollView: UIScrollView) -> UIView? { return imageView }


Compruebe tucan9389/ZoomableScrollView bifurcado desde huynguyencong / ImageScrollView.
Simplemente cree ZoomableScrollView y llame a display(view:) .

MANIFESTACIÓN

DEMO

Uso

import ZoomableScrollView class ViewController: UIViewController @IBOutlet weak var zoomableScrollView: ZoomableScrollView! override func viewDidLoad() { super.viewDidLoad() let myView = MyCustomView() zoomableScrollView.display(view: myView) } }


Echa un vistazo a this video

Descripción del video:

  • Añadir delegado UIScrollViewDelegate
  • Toma un UIScrollView
  • Toma un UIImageView que se agregará en Scrollview
  • Coloque la vista de desplazamiento en la ventana principal
  • Conecte a los delegados
  • Configurar imageView
  • Establezca la escala de zoom máx. / Min. [Lo esencial aquí]
  • Implementar método delegado para devolver la vista

La respuesta está here :

La vista de desplazamiento también maneja el zoom y la panorámica del contenido. A medida que el usuario realiza un gesto de pellizco o pellizco, la vista de desplazamiento ajusta el desplazamiento y la escala del contenido. Cuando el gesto finaliza, el objeto que gestiona la vista de contenido debería actualizar las subvistas del contenido según sea necesario. (Tenga en cuenta que el gesto puede finalizar y que el dedo aún podría estar hacia abajo.) Mientras el gesto está en progreso, la vista de desplazamiento no envía ninguna llamada de seguimiento a la subvista.

La clase UIScrollView puede tener un delegado que debe adoptar el protocolo UIScrollViewDelegate. Para que el zoom y la panorámica funcionen, el delegado debe implementar tanto viewForZoomingInScrollView: y scrollViewDidEndZooming: withView: atScale :; además, la escala de zoom máxima (máximaZoomScale) y mínima (mínimaZoomScale) debe ser diferente.

Asi que:

  1. Necesita un delegado que implemente UIScrollViewDelegate y esté configurado para delegate en su instancia de UIScrollView
  2. En su delegado, debe implementar un método: viewForZoomingInScrollView: ( que debe devolver la vista de contenido que le interesa ampliar ). También puede implementar scrollViewDidEndZooming:withView:atScale: opcionalmente.
  3. En su instancia de UIScrollView , debe configurar el minimumZoomScale y el maximumZoomScale para que sean diferentes (son 1.0 por defecto).

Nota: Lo interesante de esto es qué pasa si quieres interrumpir el zoom. ¿Es suficiente devolver nil en el método viewForZooming... ? Se rompe el zoom, pero algunos de los gestos se desordenarán (por dos dedos). Por lo tanto, para interrumpir el zoom, debe establecer la escala mínima y máxima del zoom en 1.0.


Lea este tutorial de Ray Wenderlich:

http://www.raywenderlich.com/76436/use-uiscrollview-scroll-zoom-content-swift

Si sigue la sección ''Desplazamiento y zoom de una imagen más grande'' obtendrá una imagen y le permitirá pellizcar y hacer zoom.

En caso de que el enlace se modifique, aquí está la información principal: Ponga este código en su controlador de vista (esto establece la funcionalidad principal):

override func viewDidLoad() { super.viewDidLoad() // 1 let image = UIImage(named: "photo1.png")! imageView = UIImageView(image: image) imageView.frame = CGRect(origin: CGPoint(x: 0, y: 0), size:image.size) scrollView.addSubview(imageView) // 2 scrollView.contentSize = image.size // 3 var doubleTapRecognizer = UITapGestureRecognizer(target: self, action: "scrollViewDoubleTapped:") doubleTapRecognizer.numberOfTapsRequired = 2 doubleTapRecognizer.numberOfTouchesRequired = 1 scrollView.addGestureRecognizer(doubleTapRecognizer) // 4 let scrollViewFrame = scrollView.frame let scaleWidth = scrollViewFrame.size.width / scrollView.contentSize.width let scaleHeight = scrollViewFrame.size.height / scrollView.contentSize.height let minScale = min(scaleWidth, scaleHeight); scrollView.minimumZoomScale = minScale; // 5 scrollView.maximumZoomScale = 1.0 scrollView.zoomScale = minScale; // 6 centerScrollViewContents() }

Agrega esto a la clase:

func centerScrollViewContents() { let boundsSize = scrollView.bounds.size var contentsFrame = imageView.frame if contentsFrame.size.width < boundsSize.width { contentsFrame.origin.x = (boundsSize.width - contentsFrame.size.width) / 2.0 } else { contentsFrame.origin.x = 0.0 } if contentsFrame.size.height < boundsSize.height { contentsFrame.origin.y = (boundsSize.height - contentsFrame.size.height) / 2.0 } else { contentsFrame.origin.y = 0.0 } imageView.frame = contentsFrame }

Y luego esto si quieres que se reconozca el gesto de doble toque:

func scrollViewDoubleTapped(recognizer: UITapGestureRecognizer) { // 1 let pointInView = recognizer.locationInView(imageView) // 2 var newZoomScale = scrollView.zoomScale * 1.5 newZoomScale = min(newZoomScale, scrollView.maximumZoomScale) // 3 let scrollViewSize = scrollView.bounds.size let w = scrollViewSize.width / newZoomScale let h = scrollViewSize.height / newZoomScale let x = pointInView.x - (w / 2.0) let y = pointInView.y - (h / 2.0) let rectToZoomTo = CGRectMake(x, y, w, h); // 4 scrollView.zoomToRect(rectToZoomTo, animated: true) }

Si desea más detalles, lea el tutorial, pero eso lo cubre.