2013-09-24 9 views
11

Ho appena aggiornato a XCode 5. I pulsanti nella mia app sembrano OK in IB e sul dispositivo iOS 6, ma sul dispositivo iOS 7 sembrano così (dovrebbero coprire l'intero spazio nero):Lo sfondo del pulsante su ios7 è compresso, ios6 ok

enter image description here

ho le immagini sia per non-retina/retina.

Non ho idea di cosa fare, perché non ho cambiato nulla in codice o IB.

EDIT:

Ora ho scoperto, se cambio tipo di pulsante da personalizzato per il sistema e impostare il suo sfondo, invece della sua immagine, ho la dimensione corretta, ma ho un po 'strana ombra su di esso.

EDIT2:

Ora impostare il colore della tinta del pulsante "colore chiaro" e tutto sembra ok (ombra scomparso). Ancora non sono sicuro di cosa è cambiato in iOS 7 in relazione a questo.

+0

in iOS 7, la barra di navigazione è predefinita per essere traslucida, il che significa che il frame di self.view è diverso da quello in 6. –

+0

Stai configurando i pulsanti nel codice o in uno xib/storyboard? Se il codice, si prega di inviare – RyanG

+0

In IB. Se imposto il pulsante come selezionato in IB, tutto sembra ok. – DixieFlatline

risposta

4

I Human Interface Guidelines specificamente delineare come UIButtons sistema-stile di lavoro di default. It explains that a system button:

  • non ha confini o di sfondo l'aspetto di default ...
  • Supporta decorazione personalizzata, ad esempio un'immagine di sfondo (bordo o per aggiungere un aspetto personalizzato, utilizzare un pulsante di tipo UIButtonTypeCustom e fornitura di un immagine di sfondo personalizzata).

Tuttavia il UIButton HIG page fornisce qualche informazione in più, in particolare:

Se non si imposta in modo esplicito un colore tinta, il pulsante erediterà il colore della tinta del suo superview.

Questo spiega perché, dopo aver modificato il pulsante su UIButtonTypeSystem, è necessario ripristinare (rimuovere) il colore della tinta. In iOS7, (quasi) , tutto il colore ha un colore tinta. A UIButtonTypeSystem è più appropriato per le tue esigenze ora in iOS7 (un po 'di dolore se c'è molto da cambiare manualmente però ...)

Sul motivo per cui i pulsanti si restringono in iOS7 ... Sono d'accordo con il commento di @ Giuseppe per quanto riguarda i telegrammi UIViewController in iOS7. Probabilmente hai una certa relazione per la dimensione dei pulsanti che non gioca bene quando il frame del ViewController cambia in iOS7 (vedi this SO question per la discussione). Come consigliato, controlla lo iOS7 transition guide per vedere se qualcosa che stai facendo in IB va contro il nuovo iOS7.

0

[button setBackgroundColor:[UIColor colorWithRed:(255.0/255.0) green:(180.0/255.0)];.

Questo è il codice giusto per lo sfondo, e se siete immagine uso quindi utilizzare

[UIImage imageNamed:@".png"];

Problemi correlati