Tutorial IOS – Zoom em imagem – Swift – Parte 3
Na parte 2 apenas o scrollView está funcionando corretamente, todos os outros controles ainda precisam ser implementados. Vamos em frente:
1 – Vamos da um control clique da Scroll View para a Detail View Controller e marca a delegate para nossa View Controller:
2 – Na nossa DetailViewController temos que adicionar UIScrollViewDelegate:
class DetailViewController: UIViewController, UIScrollViewDelegate {
3 – Precisamos colocar a função viewForZoomingInScrollView, essa função é chamada todas as vezes que tentamos da o pinch do zoom numa scrollView e ela retorna é a View que a scrollView deve realizar o zoom porque podemos ter uma scrollView com várias view.
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? { return imageView }
4 – Nosso slider e nem nosso switch estão funcionando, então vamos trabalhar no slider. Declare uma função IBAction para alterar o chanceValue e toda a vez que o slider for alterado ira chamar essa função e dentro dela alteramos o valor do zoom da scrollView:
@IBAction func changeValue(sender: UISlider){ scrollView.zoomScale = CGFloat(slider.value) }
Para finalizar a ligação abra o editor de um control clique do Slider até nossa função:
5 – Agora temos uma Action do Slider para essa função, precisamos configurar os valores mínimo e máximo do slider para que sejam iguais ao zoom mínimo e máximo da scrollView:
6 – Quando você rodar nosso aplicativo irá perceber que o zoom e o slider não estão sincronizados para isso vamos implementar a função:
func scrollViewDidZoom(scrollView: UIScrollView) { slider.setValue(Float(scrollView.zoomScale), animated: true) }
Ela é chamada toda a vez que a scrollView realizou algum zoom e dentro dela irá pegar o valor da scrollView.zoomScale e set a scroolView no slider.
7 – Agora vamos para o nosso switch que tem como objetivo bloquear nosso zoom. Declaramos mais uma IBAction:
@IBAction func turnOnOff(sender: AnyObject){ slider.enabled = onOffZoom.on scrollView.pinchGestureRecognizer.enabled = onOffZoom.on }
Nela toda a vez que o switch for acionado ela pega o valor do switch e o bloqueia ou não através do slider.enable. E por fim temos que fazer a ligação entre o switch e nossa função da mesma forma que foi com o Slider (Control e click).
Nesses tutoriais passamos por vários componentes e ações que você ira utilizar sempre que desenvolver um aplicativo. Obrigado e até o próximo tutorial.