2014-11-12 8 views
6

Sto cercando di ottenere il cerchio sottostante per avere un colore bianco opaco solido dove l'angoloRadius taglia fuori l'UIView.UIView circolare (con cornerRadius) senza Blended Layer

UIView *circle = [[UIView alloc] initWithFrame:CGRectMake(i * (todaySize + rightMargin), 0, smallSize, smallSize)]; 
circle.layer.cornerRadius = smallSize/2; 
circle.layer.borderWidth = 0.5; 
circle.layer.backgroundColor = [UIColor whiteColor].CGColor; 
circle.backgroundColor = [UIColor whiteColor]; 
[self addSubview:circle]; 

Ho provato alcune cose come impostare lo sfondo colorato e opaco senza fortuna. I Livelli a colori mescolati mostrano ancora che il contorno del cerchio è trasparente. Qualcuno sa come risolvere questo?

+0

Dovrai spiegare cosa intendi o mostrare un'immagine o qualcosa del genere. Hai provato a 'circle.clipsToBounds = YES;'? – Fogmeister

risposta

6

Per evitare la miscelazione quando si utilizzano gli angoli arrotondati, l'arrotondamento deve essere fatto in drawRect, piuttosto che come una proprietà sullo strato. Ho bisogno di celle UICollectionView con uno sfondo arrotondato in un'app su cui sto lavorando. Quando ho usato layer.cornerRadius, la performance ha avuto un enorme successo. L'attivazione di strati di colore mescolato ha prodotto i seguenti:

blended cells

Non quello che speravo, voglio quelle cellule da colorare verde indica l'assenza di fusione che si verificano. Per fare ciò, ho suddiviso UIView in RoundedCornerView. La mia applicazione è reale breve e dolce:

import UIKit 

class RoundedCornerView: UIView { 
    static let cornerRadius = 40.0 as CGFloat 

    override func drawRect(rect: CGRect) { 
     let borderPath = UIBezierPath(roundedRect: self.bounds, cornerRadius: RoundedCornerView.cornerRadius) 
     UIColor.whiteColor().set() 
     borderPath.fill() 
    } 
} 

Poi ho impostato la vista mi è stato l'arrotondamento per essere un RoundedCornerView nel mio pennino. Esecuzione in quel punto ceduta questo:

non-blended cells

scorrimento è burrosa liscia e non v'è alcuna miscelazione verificano. Uno strano effetto collaterale di ciò è che la proprietà backgroundColor della vista colorerà l'area esclusa degli angoli, non il corpo principale della vista. Ciò significa che il backgroundColor deve essere impostato su qualsiasi cosa si trovi dietro la tua vista, non sul colore di riempimento desiderato.

-1

Situato clipsToBounds sulla vista o masksToBounds sullo strato di YES

+0

Questo non ha funzionato. – user2336702

Problemi correlati