Tutorial IOS – Zoom em imagem – Swift – Parte 3

On 24 de março de 2015 by Pedro Duarte

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:

1

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:

2

 

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:

3

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.

 

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *