Skip to content

Commit 77f5cff

Browse files
authored
Merge pull request #3 from TimOliver/gradients
Re-add smooth gradient shading to dimming view
2 parents 8c1caac + c093e2a commit 77f5cff

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

BlurUIKit/VariableBlurView.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public class VariableBlurView: UIVisualEffectView {
7777
}
7878

7979
/// The alpha value of the colored gradient
80-
public var dimmingAlpha: DimmingAlpha? = .interfaceStyle(lightModeAlpha: 0.65,
80+
public var dimmingAlpha: DimmingAlpha? = .interfaceStyle(lightModeAlpha: 0.5,
8181
darkModeAlpha: 0.25) {
8282
didSet { setNeedsLayout() }
8383
}
@@ -292,14 +292,16 @@ extension VariableBlurView {
292292
// Update the dimming view image
293293
if dimmingView?.image == nil {
294294
makeDimmingViewIfNeeded()
295-
if let dimmingImage = fetchGradientImage(startingInset: dimmingStartingInset, overshoot: dimmingOvershoot) {
295+
if let dimmingImage = fetchGradientImage(startingInset: dimmingStartingInset,
296+
smooth: true,
297+
overshoot: dimmingOvershoot) {
296298
dimmingView?.image = UIImage(cgImage: dimmingImage).withRenderingMode(.alwaysTemplate)
297299
}
298300
}
299301
}
300302

301303
// Generates a gradient bitmap to be used with the blur filter
302-
private func fetchGradientImage(startingInset: GradientSizing?, overshoot: GradientSizing? = nil) -> CGImage? {
304+
private func fetchGradientImage(startingInset: GradientSizing?, smooth: Bool = false, overshoot: GradientSizing? = nil) -> CGImage? {
303305
// Skip if we're not sized yet.
304306
guard frame.size.width != 0.0, frame.size.height != 0.0 else { return nil }
305307

@@ -345,7 +347,8 @@ extension VariableBlurView {
345347

346348
// Create a Core Image smooth linear gradient, since the classic Core Graphics gradient seems
347349
// to have a much harsher starting line at the edge of the gradient
348-
guard let gradientFilter = CIFilter(name: "CILinearGradient") else { return nil }
350+
let filterName = smooth ? "CILinearGradient" : "CILinearGradient"
351+
guard let gradientFilter = CIFilter(name: filterName) else { return nil }
349352
gradientFilter.setDefaults()
350353
gradientFilter.setValue(gradientPosition.start, forKey: "inputPoint0")
351354
gradientFilter.setValue(gradientPosition.end, forKey: "inputPoint1")

0 commit comments

Comments
 (0)