2016-04-20 9 views
0

Ich möchte einen Umriss um eine Spalte zeichnen. Hier ist, wie meine App tatsächlich aussieht: https://gyazo.com/80dffe6a153e82565a610222a43e0c11Wie zeichne ich einen Umriss um eine Spalte?

Also die weiße Spalte stellen den Tag dar, an dem wir eigentlich sind. Aber ich will das nicht wirklich machen.

Eigentlich ist das ich so mache:

if(column == _intOfTheDay){ //intOfTheDay represent the day one where we are actually 
    cell.backgroundColor = [[UIColor whiteColor]colorWithAlphaComponent:0.95];   
} 

ich so etwas wie dies versucht haben, näher das Ergebnis zu bekommen, was ich will:

if(column == _intOfTheDay){ 
    cell.layer.borderWidth = 5.0f; 
    cell.layer.borderColor = [UIColor redColor].CGColor;   
} 

Aber das Problem hier (ohne die ganze Fehler wegen der UICollectionView) ist, dass es ein Rechteck um jede Zelle zeichnet. Und was ich möchte, ist nur ein Rechteck zu zeichnen, aber um die ganze Spalte. Wie könnte ich verarbeiten?

Jede Hilfe wird geschätzt, danke im Voraus.

+0

Subclass die Zellsammlung Ansicht und überschreibt dort deinen Draw Code .... – Spynet

+0

Sind Sie Grenze Spalte festlegen möchten, bedeutet Anzahl der Zelle von bestimmter Spalte und nicht zur Zelle? rechteckige Kastenform oder Becherformform rechts? – Lion

Antwort

1

Wenn Sie möchten, dass das UICollectionViewCell dann diese verwenden keine Unterklasse:

float borderWidth = 5.0; 
CALayer *leftBorder = [CALayer new]; 
leftBorder.frame = CGRectMake(0.0, 0.0, borderWidth, cell.frame.size.height); 
leftBorder.backgroundColor = [UIColor redColor].CGColor; 
[cell.layer addSublayer:leftBorder]; 

CALayer *rightBorder = [CALayer new]; 
rightBorder.frame = CGRectMake(cell.frame.size.width - borderWidth, 0.0, borderWidth, cell.frame.size.height); 
rightBorder.backgroundColor = [UIColor redColor].CGColor; 
[cell.layer addSublayer:rightBorder]; 
+0

Du bist der echte MVP haha ​​vielen Dank, jetzt habe ich was ich will, ich werde an den Problemen der Sammlung arbeiten – Kokodelo

1

Sie so etwas tun kann, stellen drei Grenze zur ersten Zelle von Säulen- links, rechts und oben und für letzte Zelle der Spalte links, rechts und unten und für alle mittleren Zelle links und rechts. Sie CALayer verwenden können, wie unter Beispiel einer Seite Grenze zu setzen,

CALayer *TopBorder = [CALayer layer]; 
TopBorder.frame = CGRectMake(0.0f, 0.0f, self.myImageView.frame.size.width, 3.0f); 
TopBorder.backgroundColor = [UIColor redColor].CGColor; 
[cell.layer addSublayer:TopBorder];