CALayer常用属性整理

1725 ワード

CALayer常用属性整理
  • 画層は、サブ画層を含むことができる.ビューにサブビューが含まれるように、レイヤーにサブレイヤーがあるように、少し利用するときれいな効果が得られます!
  • 画層のプロパティには、アニメーション効果があります.レイヤーのプロパティを変更すると、既定のアニメーション効果があり、アニメーションの動作をカスタマイズすることもできます.
  • レイヤーは軽量コンセプトです.ビューに比べてレイヤが軽量化されるため、レイヤはパフォーマンスの向上に役立ちます.

  • コードブロック
     func setUpLayer() {
         //    
        l.backgroundColor = UIColor.blueColor().CGColor
        //    
        l.borderWidth = 100.0
        //    
        l.borderColor = UIColor.redColor().CGColor
        //     
        l.shadowOpacity = 0.7
        //    
        l.shadowRadius = 10.0
        //     
        l.shadowOffset = CGSize(width: 0, height: 3)
        //contents              
        l.contents = UIImage(named: "star")?.CGImage
        //  contents  
        l.contentsGravity = kCAGravityCenter
        //     ,        contentsGravity       ,       (  、    、      )   (  、 、  、   )。             ,    geometryFlipped   true,            
        l.magnificationFilter = kCAFilterLinear
        l.geometryFlipped = false
      }

    追加属性
    CALayerには、shouldRasterizeとdrawsAsynchronouslyの2つの追加プロパティがあります.
  • shouldRasterizeのデフォルトはfalseです.trueに設定すると、レイヤーの内容は1回のレンダリングしか必要ないため、パフォーマンスが向上します.画面内を移動しても外観は変わらないオブジェクト効果に対して抜群です.
  • drawsAsynchronouslyのデフォルト値もfalseです.shouldRasterizeとは対照的に、このアトリビュートは、レイヤの内容を繰り返し再描画する必要がある場合に適用され、trueに設定すると、大量のパーティクルを繰り返し描画する必要があるパーティクルエミッタレイヤ
  • などのパフォーマンスが向上する可能性があります.
  • 既存のレイヤーのshouldRasterizeまたはdrawsAsynchronouslyプロパティをtrueに設定するには、必ず後行を考え、影響を考慮し、trueとfalseのパフォーマンスの違いを比較し、プロパティ設定に積極的な効果があるかどうかを明らかにします.設定が適切でないと、パフォーマンスが大幅に低下します.