2012-04-12 14 views
5

quando ho posto un pulsante in alto a sinistra della finestra, si allinea esattamente come mi sarei aspettato:Come allineare una vista al lato in alto a sinistra di una finestra?

http://stuf.ro/Button.png

Inoltre non ridimensiona insieme alla finestra, che è buono. Se provo a fare la stessa cosa con una visualizzazione personalizzata tuttavia, aggiunge automaticamente i vincoli verso il basso e verso destra, il che rende la vista ridimensionare insieme alla finestra:

http://stuf.ro/View.png

Come faccio a sbarazzarsi di questi? Mi piacerebbe che la vista non si ridimensionasse mai, e mi piacerebbe che fosse appuntata sul lato in alto a sinistra della finestra, proprio come un pulsante.

Se si tenta di selezionare il vincolo e premere il tasto Backspace, non accade nulla. Anche l'opzione "Elimina" nel menu di modifica è disabilitata.

+0

Hai controllato i controlli di autosizing in Impostazioni Dimensione? – Wienke

+0

@Wienke, sì, li ho controllati. Devo aver girato ogni manopola e l'ispettore attributi per ogni vincolo, ma non sono riuscito a ottenere il comportamento desiderato. – rid

+0

Davvero? L'ho appena testato, e rimuovendo il montante destro e la barella orizzontale, posso bloccare la larghezza di una vista secondaria. Prendo atto che i controlli nei tuoi screenshot sono diversi da quelli di Xcode 4. O forse hai aggiunto del codice che specifica gli attributi di autosize per questa vista? Ciò vincerebbe qualsiasi cosa tu faccia nel layout visivo. – Wienke

risposta

9

La vista viene ridimensionata perché presenta dei vincoli che indicano lo spazio sopra di esso, sotto di esso, alla sua sinistra, e alla sua destra dovrebbero essere corretti. Queste sono le linee che puoi vedere attorno alla tua vista nello screenshot. L'unico modo per soddisfare questi vincoli mentre la finestra si ridimensiona è che la vista ridimensioni.

È possibile selezionare le linee di vincolo per modificarle o eliminarle. Potresti pensare di poter eliminare quelli sotto e sulla destra, e la tua vista non avrà più bisogno di ridimensionare per soddisfare i restanti vincoli, ma ciò non funziona. La vista ha bisogno di un (insieme di) vincoli che specificano sia la dimensione che la spaziatura: avere i vincoli di spaziatura (creati automaticamente) su entrambi i lati implica dimensioni, ma se si elimina uno di essi la dimensione non viene più specificata. (Questo è il motivo per cui non è possibile eliminare i vincoli creati automaticamente - quelli che appaiono come strette linee blu nella vista e con icone viola nel contorno del documento.)

Questo non è un problema per il pulsante perché i pulsanti sanno come dimensionare se stessi e IB sa come si dimensionano i pulsanti. IB non conosce la tua vista personalizzata, quindi devi impostare tu stesso i vincoli. Con la vista selezionata, scegli Editor> Pin> Larghezza per creare un vincolo di larghezza. Questo crea un vincolo di larghezza e trasforma i vincoli di spazio esistenti in vincoli dell'utente (al contrario di quelli automatici) - compaiono come linee continue e hanno icone blu nel contorno del documento.

Ora è possibile selezionare il vincolo di spaziatura sulla destra ed eliminarlo, e la vista manterrà la sua larghezza e resterà sulla sinistra. Ripeti per altezza e spazio sotto e la tua vista rimarrà in alto a sinistra e non ridimensiona.

Ulteriori informazioni sul nuovo sistema di layout automatico in Apple's guide.

+0

Come li cancello? Ho provato a selezionarli e a premere il tasto Backspace, ma non è successo nulla. Aggiornata la domanda. – rid

+0

Ho dimenticato che non è possibile eliminare i vincoli creati automaticamente. Ho modificato la risposta per spiegare perché e cosa fare. – rickster

0

Seleziona la tua vista. Vai a "File Inspector" e disabilita "Usa layout automatico". D

Problemi correlati