2015-12-30 17 views
6

ho problema quando nelle impostazioni di iOS è abilitata questa impostazione "la forma dei pulsanti" enter image description hereSwift UIButton - Come rimuovere la sottolineatura?

E che causano questa sottolineatura in applicazione (prima foto con l'impostazione attivata, secondo senza) enter image description here

alcuna idea di come programatically o nello storyboard disabilitarlo?

Ho provato attribuito testo ma ottengo lo stesso risultato :(

Sono novizio in Swift.

Grazie per l'aiuto!

risposta

7

Non è un problema. Non si dovrebbe fare alcun tentativo di Contattate eventuali modifiche di accessibilità impostate dall'utente.Per un motivo vi sono

+3

Cosa disse rmaddy. Ho aperto la tua domanda per dire la stessa cosa ma mi ha battuto su di esso. I cambiamenti di accessibilità sono per gli utenti con problemi di vista/percettivi o altri deficit. Se li sconfiggi, rendi il dispositivo più difficile da usare per tali utenti. –

+0

ma il pulsante in questo modo sembra terribile :( – user1085907

+1

@ user1085907 È la scelta dell'utente, non il tuo.Non combatterlo.Rendi la tua app bella e funziona correttamente senza impostazioni di accessibilità.Assicurati che funzioni ancora (indipendentemente da come sembra) con varie impostazioni di accessibilità abilitate). – rmaddy

0

Siete sicuri di volerlo fare? Apple ha aggiunto una funzione di accessibilità per contrassegnare i pulsanti per le persone che vogliono farlo. t la tua app perché sconfigge una funzione di sistema pensata per aiutare i disabili.

+1

No, Apple non rifiuterà l'app perché così. – LoVo

+0

guarda ora quel pulsante, se ho qualche disegno in cui il pulsante sembra terribile con sottolineatura cosa dovrei fare? Diverse app con sfondo personalizzato in qualche modo eludono il problema – user1085907

+0

per favore, spiega come il design esistente (senza la sottolineatura) non sta già marcando il pulsante? – lensovet

0

È possibile creare una classe pulsante personalizzata con un'etichetta (con colore trasparente). Se si imposta il testo di questa etichetta invece non dovrebbe ottenere una sottolineatura.

+0

Ho avuto anche questa idea, solo chiedendo una soluzione migliore – user1085907

+0

No, non c'è modo senza implementazione personalizzata, ma forse puoi semplicemente cambiare la titleLabel in awakeFromNib invece di aggiungere una propria etichetta. – LoVo

0

Questa è una risposta da user4291543 da questa domanda Remove underline on UIButton in iOS 7

[yourBtnHere setBackgroundImage:[[UIImage alloc] init] forState:UIControlStateNormal]; 

ho trovato questa risposta funziona con SWFrameButton

E per tutti gli altri dicendo "non fare questo", SWFrameButton è molto buon esempio di quando vorresti farlo. Penso anche che la situazione dell'OP sia uno scenario perfettamente valido ...

+0

Questa domanda è su Swift. –

0

Sono totalmente d'accordo con il commento di @ maddy: Non è un problema. Non dovresti tentare di contrastare eventuali modifiche di accessibilità impostate dall'utente. Sono là per una ragione.

ma ho fatto inciampare su un modo per realizzare il compito a portata di mano ...

Oltre a un UIButton, avrete anche bisogno di fare un file .png che non contiene nulla (cioè l'intero contenuto avere una opacità dello 0%). Vai avanti e caricalo nelle risorse del tuo progetto xcode.

Ora andare avanti e impostare il pulsante Sfondo per l'immagine appena fornita. (Nel mio caso, l'ho chiamato clear) Ciò rimuoverà la sottolineatura dal testo del pulsante. Tuttavia, ora non puoi vedere i confini del pulsante. Questo può essere risolto cambiando lo sfondo della vista del pulsante. Vai avanti e seleziona qualsiasi colore per la proprietà View e ora lo sfondo della vista definisce visivamente i limiti del pulsante. Puoi vederlo perché il tuo clear.png ha un'opacità dello 0%.

see the Attributes inspector for UIButton here.

Piuttosto che cercare di sconfiggere la sottolineatura andando a fare un'etichetta eseguire una certa azione tramite UITapGestureRecognizer, questo consente di utilizzare ancora un UIButton. Mantenersi in linea con le funzioni di accessibilità per contrassegnare i pulsanti per le persone che vogliono farlo.

Problemi correlati