È possibile aggiungere un bordo solo sopra un UIView, in caso affermativo, come si prega?Aggiungi solo un bordo superiore a un UIView con Quartzcore/layer?
risposta
ho soluzione scoperta per me, ecco i trucchi:
CGSize mainViewSize = self.view.bounds.size;
CGFloat borderWidth = 1;
UIColor *borderColor = [UIColor colorWithRed:37.0/255 green:38.0/255 blue:39.0/255 alpha:1.0];
UIView *topView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, mainViewSize.width, borderWidth)];
topView.opaque = YES;
topView.backgroundColor = borderColor;
topView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin;
[self.view addSubview:topView];
Questo è fantastico se devi preoccuparti della rotazione. – werm098
Ho appena Testing Bellow qualche linea di codice e funziona molto bello, proprio testarlo al tuo progetto. spero che otterrai facilmente la tua soluzione.
Perché creare una nuova vista e aggiungerla alla vista esistente ...? Per questo compito è sufficiente creare un CALayer e aggiungerlo nella strato del UIView esistente fare come segue: -
#import <QuartzCore/QuartzCore.h>
- (void)viewDidLoad
{
CALayer *TopBorder = [CALayer layer];
TopBorder.frame = CGRectMake(0.0f, 0.0f, myview.frame.size.width, 3.0f);
TopBorder.backgroundColor = [UIColor redColor].CGColor;
[myview.layer addSublayer:TopBorder];
[super viewDidLoad];
}
e il suo output è: -
Sì, giusto, funziona anche bene! – GilbertOOl
Ancora una precisione, la tua soluzione invece la mia soluzione gestisce una scarsa autorotazione! – GilbertOOl
Un UIView lo farà almeno altrettanto bene – Pascalius
Ecco una categoria UIView che lascia aggiungi un bordo layer o back-view su qualsiasi lato di UIView: UIView+Borders
non funziona con UIToolBar – chipbk10
Ho creato questa sottoclasse UIView semplice in modo che funzioni in Interface Builder e funzioni w esimo vincoli: https://github.com/natrosoft/NAUIViewWithBorders
Ecco il mio blog post su di esso: http://natrosoft.com/?p=55
- Fondamentalmente appena caduta in un UIView in Interface Builder e cambiare il suo tipo di classe a NAUIViewWithBorders.
- Poi, nel viewDidLoad del VC fare qualcosa di simile:
/* For a top border only ———————————————- */
self.myBorderView.borderColorTop = [UIColor redColor];
self.myBorderView..borderWidthsAll = 1.0f;
/* For borders with different colors and widths ————————— */
self.myBorderView.borderWidths = UIEdgeInsetsMake(2.0, 4.0, 6.0, 8.0);
self.myBorderView.borderColorTop = [UIColor blueColor];
self.myBorderView.borderColorRight = [UIColor redColor];
self.myBorderView.borderColorBottom = [UIColor greenColor];
self.myBorderView.borderColorLeft = [UIColor darkGrayColor];
Ecco un link diretto al file .m modo da poter vedere l'attuazione: NAUIViewWithBorders.m
c'è un progetto demo pure.
Grazie per questo - l'ho trovato davvero solido e semplice da usare, con un'implementazione piacevolmente semplice. – weienw
meglio con l'estensione, non la sottoclasse –
risposta di GilbertOOI a Swift 2: risposta
let topBorder: CALayer = CALayer()
topBorder.frame = CGRectMake(0.0, 0.0, myView.frame.size.width, 3.0)
topBorder.backgroundColor = UIColor.redColor().CGColor
myView.layer.addSublayer(topBorder)
Remus in Obj-C:
CALayer *topBorder = [CALayer new];
topBorder.frame = CGRectMake(0.0, 0.0, self.frame.size.width, 3.0);
topBorder.backgroundColor = [UIColor redColor].CGColor;
[myView.layer addSublayer:topBorder];
GilbertOOI's answer a Swift 4:
let topBorder: CALayer = CALayer()
topBorder.frame = CGRect(x: 0, y: 0, width: myView.frame.size.width, height: 1)
topBorder.backgroundColor = UIColor.purple.cgColor
myView.layer.addSublayer(topBorder)
- 1. WPF Aggiungi un bordo a TextBlock
- 2. Come si crea un bordo personalizzato attorno a un UIView?
- 3. Creare un UIView con un solo lato diagonale
- 4. applica l'ombra esterna solo al bordo superiore?
- 5. UITextField solo bordo superiore e inferiore
- 6. Come impostare un bordo sfumato su UIView?
- 7. Aggiungi un nuovo attributo a un bordo nella retex
- 8. Doppio bordo con un solo elemento
- 9. Aggiungi attributo personalizzato a un punto bordo SVG utilizzando jQuery
- 10. Aggiungi bordo a fa-circle
- 11. UIView con angolo rotondo e bordo bianco
- 12. Bordo UIView con effetto dissolvenza o sfocatura
- 13. Come posso centrare un UIView a livello di codice sulla parte superiore di un UIView esistente utilizzando l'Autolayout?
- 14. Immagine bordo superiore in CSS3
- 15. Aggiungi bordo di colore solido con CIImage
- 16. È possibile avere un bordo swing java solo sul lato superiore?
- 17. Aggiungi un'etichetta sul bordo con Cytoscape.js
- 18. Come disegnare un bordo nella parte superiore del layout lineare
- 19. Disegna bordo a tema di un TEdit
- 20. Aggiungi solo un articolo univoco all'elenco
- 21. Come aggiungere padding a un JPanel con un bordo
- 22. Come posso impostare un bordo css su un solo lato?
- 23. Aggiungi proprietà a un elenco?
- 24. Aggiungi bordo a LinearLayout a livello di programmazione
- 25. Testo di input bordo superiore e sinistro hanno un colore del bordo diverso
- 26. sfocata UIView con CATransform3D solo su RETINA
- 27. Sotto-vista della copertina del bordo UIView?
- 28. WPF - Bordo attorno a un controllo articoli
- 29. Graphviz --- etichetta del bordo troppo vicina a un altro bordo
- 30. Aggiungi frame o bordo a ImageView e Drop-Shadow
è possibile impostare view.layer. bordercolor e borderwidth, bordercolor – rakeshNS
No, scusa, la tua soluzione aggiunge un bordo per tutte le viste, non solo per la parte superiore di UIView !!! – GilbertOOl
possiamo impostare confine su un lato del UIView, questo post potrebbe essere utile http://stackoverflow.com/questions/11236607/uiview-set-only-side-borders – rakeshNS