Mischen zu vermeiden, wenn abgerundete Ecken verwendet wird, die Rundung in drawRect getan werden muss, und nicht als eine Eigenschaft auf der Schicht. Ich benötigte UICollectionView-Zellen mit abgerundetem Hintergrund in einer App, an der ich gerade arbeite. Als ich layer.cornerRadius benutzt habe, hat die Performance einen großen Erfolg gehabt. Einschalten Farbe gemischt Schichten ergab die folgenden:
nicht, was ich hatte gehofft, ich will diese Zellen grün gefärbt werden, das angibt, dass keine Vermischung stattfindet. Um dies zu tun, unterteilte ich UIView in RoundedCornerView. Meine Implementierung ist wirklich kurz und bündig:
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()
}
}
Dann stelle ich die Ansicht, die ich Runden wurde ein RoundedCornerView in meiner Feder zu sein. Laufen an diesem Punkt ergab dies:
Scrolling ist buttrig glatt und es ist nicht mehr Vermischung auftritt. Ein seltsamer Nebeneffekt davon ist, dass die backgroundColor-Eigenschaft der Ansicht den ausgeschlossenen Bereich der Ecken und nicht den Hauptteil der Ansicht einfärbt. Dies bedeutet, dass die backgroundColor auf dem Hintergrund der Ansicht und nicht auf der gewünschten Füllfarbe eingestellt werden sollte.
Sie müssen erklären, was Sie meinen oder ein Bild oder etwas zeigen. Hast du versucht, 'circle.clipsToBounds = YES;'? – Fogmeister