2017-02-01 3 views
0

Je souhaite créer un UISlider sans piste.
Voici le code de ma sous-classe:Sous-classe UISlider: CGContextAddPath: contexte non valide 0x0

import UIKit 

class topSlider: UISlider { 
    override func trackRect(forBounds bounds: CGRect) -> CGRect { 
     var result = super.trackRect(forBounds: bounds) 
     result.size.height = 0 
     return result 
    } 
} 

Je reçois cette erreur étrange et le système continue de tuer mon application en raison d'un problème de mémoire.

CGContextAddPath: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Error: CGContextAddPath: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
clip: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
clip: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
CGContextDrawLinearGradient: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Error: CGContextDrawLinearGradient: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.


J'utilise Xcode 8.2.1.
Est-ce que je fais quelque chose de mal?

Merci d'avance.

+0

ce qui se passe avec 'result.size.height = 1'? – Russell

+0

cela fonctionne avec 1! –

+0

alors je pense que vous avez besoin de trouver un autre moyen de cacher la piste, car il n'aime pas la dessiner avec une hauteur nulle! – Russell

Répondre

0

Si vous avez besoin est de cacher la piste, juste régler pour effacer la couleur:

slider.minimumTrackTintColor = UIColor.clear 
slider.maximumTrackTintColor = UIColor.clear