2011-10-28 11 views
5
/* Adding the Path */ 
UserGraphBuff = UIGraphicsGetCurrentContext(); 

CGContextSetRGBStrokeColor(UserGraphBuff,5,10,0,1); 
CGContextSetLineWidth(UserGraphBuff, 2); 

CGContextBeginPath(UserGraphBuff); 

//line to last user point 
CGContextAddLineToPoint(UserGraphBuff, (*xVal)[sizeof xVal/sizeof *xVal - 1], (*yNewVal)[sizeof yNewVal/sizeof *yNewVal - 1]); 
//line to rest of user points in reverse order 
for (int i = sizeof xVal/sizeof *xVal - 1; i > -1; i--){ 
    CGContextAddLineToPoint(UserGraphBuff, (*xVal)[i], (*yNewVal)[i]); 
} 

//EOFill 
CGContextEOFillPath(UserGraphBuff); 

Sopra è il codice che sto cercando di elaborare. Dovrebbe fare quello che dice CGContext, ma non mi viene disegnato nulla. Continuo a ricevere questo errore:errore 'contesto non valido 0x0' quando si utilizzano le funzioni CGContext *

Fri Oct 28 13:18:40 case.app testApplication[4127] <Error>: CGContextSetRGBStrokeColor: invalid context 0x0 
Fri Oct 28 13:18:40 case.app testApplication[4127] <Error>: CGContextSetLineWidth: invalid context 0x0 
Fri Oct 28 13:18:40 case.app testApplication[4127] <Error>: CGContextBeginPath: invalid context 0x0 
Fri Oct 28 13:18:40 case.app testApplication[4127] <Error>: CGContextAddLineToPoint: invalid context 0x0 
Fri Oct 28 13:18:40 case.app testApplication[4127] <Error>: CGContextDrawPath: invalid context 0x0 

riferisco alla CGContextRef nel mio file di intestazione.

non credo di capire bene CGContext né so cosa dovrebbe essere CGContextRef.

+0

Dove vive questo codice? Nel 'drawRect' di una sottoclasse' UIView'? – MusiGenesis

+0

'- (void) userShow {' –

+1

Che diavolo è? Che cosa fa? Si chiama '-drawRect:'? –

risposta

17

Per il codice per funzionare, ha bisogno di essere eseguito nel metodo della vostra UIView sottoclasse drawRect (e non si chiama drawRect direttamente - questo è chiamato dal sistema operativo quando ha bisogno l'UIView di rendere se stesso). Probabilmente stai tentando di eseguire questo codice da un evento touch o da viewDidLoad o qualcosa del genere.

+0

È nel suo stesso metodo di parecchie cose. non è chiamato da solo. Sto eseguendo questo da un evento di controllo. Voglio che i dati degli utenti siano incrociati con il disegno reale (praticamente un gioco di tracing). A questo punto sto solo provando a fare un percorso di ciò che la persona come disegnata è pronta. –

+6

Per ripetere: il tuo codice non funzionerà (significa che genererà gli errori visibili) a meno che non sia in esecuzione nel metodo 'drawRect' di una sottoclasse' UIView'. – MusiGenesis

+4

E per spiegare: UIView imposta il contesto corrente prima di chiamare il tuo 'drawRect:'. Questa è una caratteristica: disegni quando è necessario disegnare, che il sistema tiene traccia di te. Non combatterlo; sposta il tuo codice di disegno dove dovrebbe essere e lavora con il sistema. Quando qualcosa cambia che la vista dovrà ridisegnare per, imposta la vista come necessaria. –

Problemi correlati