gpt4 book ai didi

objective-c - 淡出 NSScrollView 的顶部和底部

转载 作者:行者123 更新时间:2023-12-03 16:38:07 25 4
gpt4 key购买 nike

有什么方法可以让 NSScrollView 的顶部和底部边缘淡入透明吗?我见过一些代码/答案,通过向 subview 添加某种颜色的渐变来“淡化”它,基本上,用背景颜色覆盖顶部和底部。但是,我希望它实际上淡入 alpha=0,这样您实际上可以看到 ScrollView 后面的 View 内容。我计划我的应用程序在这个 NSScrollView 后面有各种背景,并且在边框上没有任何类型的过渡,它看起来相当便宜。

最佳答案

here 转换了一个简单的 iOS 实现与 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

}

关于objective-c - 淡出 NSScrollView 的顶部和底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10488914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com