Maskstobounds vs clipstobounds [Duplikat]

8

In meinem Punkt der beiden clipstobounds und maskstobounds macht den gleichen Job.

Ich konnte keinen Unterschied zwischen ihnen finden.

Jemand erklärt mir freundlicherweise, wie beide anders sind.

    
sathishkumar_kingmaker 13.09.2016, 08:57
quelle

2 Antworten

13

masksToBounds

  

Alle Sublayer der Ebene, die sich außerhalb ihrer Grenzen erstrecken, werden an diese Grenzen angehängt. Stellen Sie sich die Schicht in diesem Fall als Fenster auf ihre Unterschichten vor. alles außerhalb der Ränder des Fensters ist nicht sichtbar. Wenn "masksToBounds" auf "NO" gesetzt ist, wird kein Clipping ausgelöst.

     

Wenn der Wert dieser Eigenschaft wahr ist, erstellt Core Animation eine implizite Schnittmaske, die den Grenzen der Ebene entspricht und alle Eckenradieneffekte enthält. Wenn auch ein Wert für die mask-Eigenschaft angegeben wird, werden die beiden Masken multipliziert, um den endgültigen Maskenwert zu erhalten.

Weitere Informationen erhalten Sie in der API-Referenz .

clipToBounds

  

Der Anwendungsfall für clipsToBounds ist eher für Teilansichten, die teilweise außerhalb der Hauptansicht liegen. Zum Beispiel habe ich eine (kreisförmige) Unteransicht am Rand der übergeordneten (rechteckigen) UIView. Wenn Sie clipsToBounds auf YES setzen, wird nur die Hälfte des Kreises / der Unteransicht angezeigt. Wenn NEIN eingestellt ist, wird der gesamte Kreis angezeigt. Gerade angetroffen das wollte so teilen

für weitere Informationen Beispiellink

    
Anbu.karthik 13.09.2016, 09:11
quelle
11

ClipstoBounds : Wenn clipsToBounds auf YES gesetzt ist, sehe ich nur den Teil der Unteransicht, der in die Grenzen der Superview passt. Andernfalls, wenn clipsToBounds auf NO gesetzt ist, sehe ich die gesamte Subview, auch die Teile außerhalb der Superview

MaskstoBounds : Wenn die Eigenschaft mascetsToBounds auf YES gesetzt ist, werden alle Unterlayer des Layers, die sich außerhalb seiner Grenzen erstrecken, an diese Grenzen angehängt. Stellen Sie sich die Schicht in diesem Fall als Fenster auf ihre Unterschichten vor. alles außerhalb der Ränder des Fensters ist nicht sichtbar. Wenn "masksToBounds" auf "NO" gesetzt ist, tritt keine Übersteuerung auf, und alle Sublayer, die sich außerhalb der Grenzen des Layers befinden, werden vollständig sichtbar sein (solange sie nicht über die Ränder eines Superlayers hinausgehen, für den die Maskierung aktiviert ist).

    
Bhagabata 13.09.2016 09:10
quelle

Tags und Links