2012-05-07 10 views
2

NSScrollViewの上端と下端を透明にフェードインする方法はありますか?私はいくつかのコード/答えは、基本的には、バックグラウンドカラーの上部と下部を覆う、基本的に、サブビューに特定の色のグラデーションを追加することによって 'フェード'を見てきました。しかし、実際にはアルファ= 0にフェードしたいので、実際にはスクロールビューの背後にあるビューの内容を見ることができます。私はこのNSScrollViewの背後にいろいろな背景を持つように私のアプリケーションを計画しています、そしてそれは非常に安く見える国境に任意の種類の遷移なし。ここでNSScrollViewの上下をフェードアウトする

答えて

1

はあなたのための既製の下&トップフェードです:

https://github.com/jnozzi/JLNFadingScrollView

あなたは 'のそのフェード色(通常はグレー/シャドウの黒またはスクロールビューの背景色を設定することができますfade-to-nothing ')

1

簡単なiOSの実装をhereからmacOS Swiftで使用するように変換しました。

あなたNSScrollViewサブクラスでこれを入れて:

let fadePercentage: Float = 0.05 

override func layout() { 

    super.layout() 

    let transparent = NSColor.clear.cgColor 
    let opaque = NSColor.controlDarkShadowColor.cgColor 

    let maskLayer = CALayer() 
    maskLayer.frame = self.bounds 

    let gradientLayer = CAGradientLayer() 
    gradientLayer.frame = NSMakeRect(self.bounds.origin.x, 0, self.bounds.size.width, self.bounds.size.height) 
    gradientLayer.colors = [transparent, opaque, opaque, transparent] 
    gradientLayer.locations = [0, NSNumber(value: fadePercentage), NSNumber(value: 1 - fadePercentage), 1] 

    maskLayer.addSublayer(gradientLayer) 
    self.layer?.mask = maskLayer 

} 
関連する問題