Ok, c'è già è un accettati rispondo ma penso che ci sia un modo migliore per farlo, devi solo avere un nuovo livello un po 'più grande della tua vista e non mascherarlo ai limiti del livello della vista (che in realtà è il comportamento predefinito). Ecco il codice di esempio:
CALayer * externalBorder = [CALayer layer];
externalBorder.frame = CGRectMake(-1, -1, myView.frame.size.width+2, myView.frame.size.height+2);
externalBorder.borderColor = [UIColor blackColor].CGColor;
externalBorder.borderWidth = 1.0;
[myView.layer addSublayer:externalBorder];
myView.layer.masksToBounds = NO;
Naturalmente questo è che se si desidera che il confine sia 1 unità di grandi dimensioni, se si vuole più di adattare il borderWidth
e la cornice dello strato di conseguenza. Questo è meglio che usare una seconda vista un po 'più grande come un CALayer
è più leggero di un UIView
e non si dispone non modificare la struttura di myView
, che è buono per esempio se myView
è un UIImageView
NB: Per me il risultato non era perfetto sul simulatore (il livello non era esattamente nella posizione corretta, quindi lo strato era spesso più spesso su un lato a volte) ma era esattamente ciò che è richiesto sul dispositivo reale.
EDIT
In realtà il problema parlo nel N.B era solo perché avevo ridotto la schermata del simulatore, il formato normale non v'è assolutamente alcun problema
Speranza che aiuta
fonte
2015-11-06 09:03:31
ho usato questo in vista del UITableViewCell. ma sulla linea, self.frame = CGRectInset (self.frame, -borderWidth, -borderWidth); La larghezza e l'altezza della vista continua ad aumentare se continuiamo a scorrere la vista tabella. Così ho finito per rimuoverlo. – Neela
Questo metodo continua ad aumentare l'altezza della vista, quindi rimuovo questo codice e utilizzo il seguente codice self.view.layer.borderColor = [[Colore colorWithRed: 209.0f/255.0f verde: 33.0f/255.0f blu: 8.0f/255.0 f alpha: 1.0f] CGColor]; self.view.layer.borderWidth = 1.0f; –
Ho provato questa soluzione in Swift, purtroppo non funziona, il bordo continua a disegnare all'interno di UIImageView – DCDC