Xcode 11 aggiunge nuovi vincoli imposta zero: usa il valore impostato invece di default / standard


74

Usavo il completamento automatico per aggiungere nuovi vincoli per rendere semplici vincoli alla superview / vista relativa in questo modo (per tempi lunghi):

inserisci qui la descrizione dell'immagine

Tuttavia, recentemente dopo l'aggiornamento all'ultimo xcode (11.3.3 o solo 11.3 / 11C29), ho questo strano problema: quando imposto la costante = 0, generano sempre i vincoli in modo indesiderato come questo:

inserisci qui la descrizione dell'immagine

E sembra che il valore predefinito sia in qualche modo 20 e che la mia vista appaia così sbagliata (0 rispetto a 20?)

Se lo risolvo modificando il vincolo in questo modo:

inserisci qui la descrizione dell'immagine

Quindi correggerà di nuovo (l'immagine dopo aver modificato i vincoli, prima di essere modificata visualizza costante = Standard)

Non so nemmeno come descrivere il problema, ma come posso risolvere questo nuovo add new constraintper usare il mio punto di desiderio invece di standard / default?

Aggiornare:

Sembra accaduto solo quando il vincolo alla superview. Nessun indizio su come risolvere il problema.

Aggiornamento aprile-01-2020:

Xcode11.4 risolto questo problema.


2
Lo stesso problema qui. Penso che sia apparso per la prima volta quando ho aggiornato l'UPD 11.3: lo stesso progetto non ha questo problema su un'altra macchina con la stessa versione di xcode. Forse è correlato alla configurazione IDE o forse è un bug dell'IDE stesso.
Dmitrij Rogov,

1
Lo stesso problema qui. Usando Xcode 11.3 (11C29).
user525504

1
Stesso problema Versione 11.3 (11C29)
user832

1
@DmitrijRogov Ho ricordato qualche volta prima (xcode 8,9 o 10), c'è un'impostazione da qualche parte che ci aiuta a definire il standardvalore (così possiamo impostare 10 o 0 invece di default = 8) ma ho dimenticato dove si trova ora. O forse hanno rimosso la funzione?
Eddie il

5
Questo mi sta facendo impazzire
Comprando Brian il

Risposte:


37

Sembra un bug (non dimenticare di file con Apple). Ecco una semplice soluzione:

Quando si inserisce il numero nel "popover", invece di digitare 0 , digitare 0.01. Ciò impedirà al numero di cambiare misteriosamente in "Standard". Va bene, quindi 0.01non è lo stesso 0ma è abbastanza vicino da non poter dire la differenza, e almeno non devi tornare indietro e cambiarlo in seguito.

EDIT Apple afferma che questo bug verrà corretto in Xcode 11.4:

Risolto un bug che impediva di inserire una costante 0 negli editor popup dei vincoli. (54076090)


1
bel lavoro, grazie!
Eddie,

1
Grande! Che fastidioso problema può essere ..
Joaquin Pereira,

Funziona bene quando uso 0,01 al posto di 0
Teja,

Ma impostandolo su 0 la seconda volta funziona. Perché preoccuparsi di 0,01? È comunque abbastanza fastidioso. Per fortuna è un bug e non una "caratteristica".
Vlad Rusu,

11

Mentre la soluzione alternativa di @matt funziona, voglio solo aggiungere che puoi impostarlo su 0,01 e quindi cambiarlo in 0, non cambierà di nuovo al valore standard. Nota: Xcode 11.3


Per me quando lo cambio di nuovo a 0, cambia nuovamente in "standard". Xcode 11.3.1.
John Scalo,

10

A partire da Xcode 11.3.1:

La soluzione più accurata e veloce che ho trovato è la seguente:

Digitare semplicemente nel -0campo del vincolo. Xcode sembra scartare il negativo e si comporta correttamente, il che è meglio che leggere 0.01per tutto.

Puoi inserire tutti i vincoli contemporaneamente, senza doverne fare uno alla volta o andare e modificare in seguito.

Xcode visualizza i valori come questo

Sembra un comportamento davvero stupido. C'è un motivo per cui Apple avrebbe potuto farlo deliberatamente ...?

Modifica: questo non sembra funzionare ogni volta , il che è frustrante. Ho appena avuto un UIImageView show 0 su Superview, ma visivamente ancora al valore predefinito (20). Questo sembra davvero un bug con l'IB poiché il comportamento è totalmente illogico.


9

Questo comportamento sembra essere stato risolto su Xcode 11.4: note di rilascio

Risolto un bug che impediva di inserire una costante 0 negli editor popup dei vincoli. (54076090)


Risposta originale:

Ho appena trovato anche questo comportamento, ho provato ad aggiungere i vincoli 1 per 1 e Xcode ha rispettato il valore 0.

I miei due centesimi.


Sì, l'ho appena notato anche nelle note di rilascio, ben fatto.
matt

5

So che questa non è una soluzione, ma per una soluzione temporanea che ti impedisca di superare ogni vincolo, ho appena scoperto che ottieni il comportamento desiderato se inserisci '-0' invece di '0', ma devi inserirne uno vincolo ogni volta.


questa è in realtà una buona opzione, aggiungendo un '-0' quando si creano i vincoli sarà '0' nell'ispettore, non c'è bisogno di andare lì e cambiarli
busta117

1

In realtà non c'è modo di risolvere questo problema nel frattempo

ma la migliore soluzione temporanea è aggiungere i vincoli con zero uno per uno.


0

ignoralo quando standard.

dopo averlo aggiunto fai clic su vincolo (linea blu) e ispettore per vincolare l'attributo e impostarlo su 0.

quel lavoro per me


0

Riscontro ancora questo errore (Xcode 11.3.1). Risolto il problema aggiungendo semplicemente i vincoli come "standard", quindi facendo clic sulle linee di vincolo blu e impostando la "costante" in Impostazioni dimensioni su 0.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.