Domanda

Sto cercando di utilizzare un UIImage con stretchableImageWithLeftCapWidth per impostare l'immagine nella mia UIImageView ma sto incontrando uno strano bug ridimensionamento. Fondamentalmente immaginare la mia immagine come un ovale che è di 31 pixel. La sinistra e destra 15 pixel sono i tappi e il singolo pixel centrale è la porzione in scala.

Questo funziona bene se regolo il tappo sinistra a 15. Tuttavia, se ho impostato, per esempio, 4. si aspetterebbe di ottenere una porzione 'centro' che è un po 'curvo come si estende il centro mentre le estremità sono un po 'schiacciato.

me rappresenta il tappo sinistra apparentemente corretta, seguito da un tratto lungo medio che è come se ho scalato il singolo pixel a pixel 5, poi una porzione a destra dell'immagine dove si espande e si chiude su una larghezza circa due volte la larghezza dell'immagine originale. L'immagine risultante è come un termometro a bulbo.

Qualcuno ha visto un comportamento strano come questo e potrebbe sapere che cosa sta succedendo?

È stato utile?

Soluzione

La tua osservazione è corretta, Joey. StretchableImageWithLeftCapWidth non espande l'intero centro dell'immagine come ci si aspetterebbe. Si espande solo la colonna di pixel appena a destra del tappo sinistra e la riga di pixel appena sotto il tappo superiore!

proprietà contentStretch Usa UIView, invece, e il vostro problema sarà risolto. Un altro vantaggio di questo è che contentStretch può anche ridurre un grafico correttamente, mentre stretchableImageWithLeftCapWidth funziona solo quando si effettua l'immagine più grande.

Altri suggerimenti

Non è sicuro se ho avuto ragione, ma LeftCapWidth ecc è fatto per gli angoli arrotondati, con tutto ciò che nel rettangolo all'interno del raggio di arrotondamento è allungata per adattarsi allo spazio tra i 'tappi' sul pulsante di destinazione o ad esempio.

Quindi, se il vostro ovale è più alto o più largo di 4 x 2 = 8, tutto ciò che è nel rettangolo centrale sarà allungato. E il vostro è, quindi sarebbe almeno un'occhiata po 'brutto! Ma se non è nemmeno simmetriche, qualcosa ha colpito il tratto. Forse qualcosa a che fare con l'origine o il telaio, oppure quando è impostato, o forse è impostato per due volte, o si dispone di due diverse immagini allungate uno sopra l'altro che l'aspetto termometro.

una volta creato due pulsanti identici nello stesso posto, utilizzando lo stesso oggetto trattenuto - naturalmente gettare via il pulsante precedente. Poi mi sono chiesto perché diamine il pulsante non è scomparso quando ho alpha impostato a 0 ... ma lo ha fatto, è solo che ci fosse un pulsante 'morto' identica sotto di esso:)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top