Quali sono i motivi per creare una sottoclasse UIView?

2

Ho notato che ci sono molte sottoclassi di UIView nel mio progetto precedente. Principalmente l'unica ragione di tale sottoclasse è quella di dividere la vista più grande in sottoview personalizzate e fornire il layout per le sue sottoview e la delega delle azioni di UIButtons attraverso il protocollo delegate della vista. Quindi mi chiedo, è un design corretto?

    
posta Denis Mikhaylov 27.08.2013 - 07:49
fonte

5 risposte

5

Un motivo molto comune per creare una sottoclasse UIView è che si possa specificare un metodo drawRect per fare un disegno della grafica core in una vista. Un altro motivo potrebbe essere quello di implementare i delegati di tocco, ad esempio se si desidera eseguire un'operazione all'interno di un'area di visualizzazione specifica troppo specializzata per un riconoscitore di gesti.

Il partizionamento di oggetti (come le viste) in raggruppamenti logici, possibilmente in una gerarchia, è generalmente considerato una buona pratica di codifica, poiché aiuta a isolare l'ambito di eventuali modifiche o bug.

    
risposta data 31.08.2013 - 06:07
fonte
1

Se la tua vista è solo un contenitore di altre viste, allora è meglio usare un UIView regolare (non sottoclasse). Componi la vista (o carica poi il pennino) da un controller di vista sottoclasse.

Eccezioni: quando sottoclasse UIView:

  • per il disegno personalizzato
  • risposte tattili non standard (oltre alle funzionalità dei riconoscitori di gesti)
risposta data 24.09.2013 - 08:05
fonte
0

In XCode, ogni UIButton, UiLabel sono UIViews solo quelle UIViews predefinite, quindi quando vuoi aggiungerle al tuo ViewController, saranno aggiunte come:

[self.view addSubview:aView];

Possiamo anche creare UIViews personalizzate che ti permettono di progettare le tue viste complesse come tabelle, viste a griglia, grafici e così via ...

    
risposta data 28.08.2013 - 06:50
fonte
0

se riesci a gestire tutta la tua vista, non c'è nulla di male nel mantenere il numero delle visualizzazioni secondarie ...

puoi consultare Vedi gerarchia ..

link

In uno dei miei progetti ho avuto 10 sottoview che sono stati aggiunti in base al mio clic del pulsante ...

Ho cercato e ho trovato che non è stata fornita alcuna limitazione per le visualizzazioni secondarie ...

    
risposta data 24.09.2013 - 07:29
fonte
0

Nei primi iOS, non esisteva il ViewController. Alcune cose che potremmo fare ora con un ViewController oggi sono state fatte dalla vista; sembra che alcune delle tue classi di vista stiano facendo cose del genere.

Nel complesso, non è un odore di codice terribile se la sottoclasse è piccola. Quando la sottoclasse diventa troppo disordinata, spunta nuove classi per gestire le responsabilità di aggregazione (MyController) e delega (MyViewDelegate).

    
risposta data 24.09.2013 - 10:56
fonte

Leggi altre domande sui tag