Pergunta

Qual é a melhor prática para definir o fator de zoom de uma imagem no ikimageView via nsslider?

Eu era capaz de ligar um slider para mais Zoom OU Reduzir o zoom Ação de um ikimageView. Obviamente, o que eu prefiro ver é um único slider que controla as duas ações. O melhor, se a imagem for atualizada após cada alteração do controle deslizante (continuamente, mesmo que um botão de mouse ainda não tenha sido liberado).

Foi útil?

Solução

Esta demonstração explica muito: ImageKitDemo

Em particular, este trecho é o que eu estava procurando:

- (IBAction) zoomSliderDidChange:(id)sender
{
    [addProductPhotoImageView setZoomFactor:[sender floatValue]];
}

Outras dicas

A maneira das ligações seria ligar o fator de zoom da visualização da imagem IK e o valor do controle deslizante à mesma propriedade do seu controlador. Quando o controle deslizante altera o valor da propriedade, a visualização da imagem será notificada e obterá o novo valor do seu controlador.

Uma vantagem dessa maneira é que você pode adicionar mais maneiras de aumentar e diminuir o zoom e o valor no controle deslizante não ficará obsoleto. Por um exemplo, se o ikimageView adicionar um pitada de zoom (ou se já o tiver-eu não tenho multi-toque no meu Mac), o usuário pode aumentar o zoom dessa maneira e o slider atualizará automaticamente. Isso não vai acontecer com o IBAction solução.

Outro exemplo seria ampliar e ampliar os comandos do menu (talvez com atalhos de teclado ⌘+ e ⌘- que enviam mensagens de ação ao seu controlador. Seu controlador responderia aumentando ou diminuindo o valor da propriedade (usando um método Setter que ele implementa). Com as ligações, a visualização da imagem e o controle deslizante serão atualizados gratuitamente. Sem ligações, você teria que conversar explicitamente com a visualização da imagem e o controle deslizante, dizendo para atualizar seu fator de zoom e o outro para atualizar seu controle deslizante.

Um terceiro exemplo seria uma tela "Fator de zoom: x%" em um canto da sua janela. Com as ligações, isso pode ser atualizado gratuitamente, não importa como o usuário amplie a imagem: mover o polegar deslizante, beliscar/desobstruir a imagem ou pressionar um item de menu. Sem encaderções, isso seria mais uma coisa com quem você deve conversar em seus (pelo menos três) métodos de ação de mudança de zoom.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top