From 0de78828be9788bfc8b6b743fa2a75d9da2bf383 Mon Sep 17 00:00:00 2001 From: FarzadShbfn Date: Sun, 9 Apr 2017 18:30:03 +0430 Subject: [PATCH 1/3] Add Ability to define center --- GradientView/GradientView.swift | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/GradientView/GradientView.swift b/GradientView/GradientView.swift index 149b8a4..658bc11 100644 --- a/GradientView/GradientView.swift +++ b/GradientView/GradientView.swift @@ -19,7 +19,7 @@ import UIKit case linear /// A radial gradient. - case radial + case radial((center: CGPoint, radius: CGFloat)?) } @@ -131,13 +131,15 @@ import UIKit if let gradient = gradient { let options: CGGradientDrawingOptions = [.drawsAfterEndLocation] - if mode == .linear { + switch mode { + case .linear: let startPoint = CGPoint.zero let endPoint = direction == .vertical ? CGPoint(x: 0, y: size.height) : CGPoint(x: size.width, y: 0) context?.drawLinearGradient(gradient, start: startPoint, end: endPoint, options: options) - } else { - let center = CGPoint(x: bounds.midX, y: bounds.midY) - context?.drawRadialGradient(gradient, startCenter: center, startRadius: 0, endCenter: center, endRadius: min(size.width, size.height) / 2, options: options) + case .radial(let centerRadius): + let center = centerRadius?.center ?? CGPoint(x: bounds.midX, y: bounds.midY) + let radius = centerRadius?.radius ?? (min(size.width, size.height) / 2) + context?.drawRadialGradient(gradient, startCenter: center, startRadius: 0, endCenter: center, endRadius: radius, options: options) } } From 65cec1a05cab5ea4498cd3976d235a50c995fc72 Mon Sep 17 00:00:00 2001 From: FarzadShbfn Date: Sun, 9 Apr 2017 18:37:19 +0430 Subject: [PATCH 2/3] removing `@IBDesignable` and `@IBInspectable`, , because it's not able to fetch `mode` and `direction` from IB, it's just causing problems for loading views. --- GradientView/GradientView.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/GradientView/GradientView.swift b/GradientView/GradientView.swift index 658bc11..1f4a95b 100644 --- a/GradientView/GradientView.swift +++ b/GradientView/GradientView.swift @@ -9,7 +9,7 @@ import UIKit /// Simple view for drawing gradients and borders. -@IBDesignable open class GradientView: UIView { +open class GradientView: UIView { // MARK: - Types @@ -72,14 +72,14 @@ import UIKit } /// The mode of the gradient. The default is `.Linear`. - @IBInspectable open var mode: Mode = .linear { + open var mode: Mode = .linear { didSet { setNeedsDisplay() } } /// The direction of the gradient. Only valid for the `Mode.Linear` mode. The default is `.Vertical`. - @IBInspectable open var direction: Direction = .vertical { + open var direction: Direction = .vertical { didSet { setNeedsDisplay() } From 2543276e10b4321e1ea20722ae706148e2726874 Mon Sep 17 00:00:00 2001 From: Farzad Sharbafian Date: Sat, 27 Jan 2018 19:10:02 +0330 Subject: [PATCH 3/3] . --- Gradient View.xcodeproj/project.pbxproj | 26 ++++++++++++++++-- .../contents.xcworkspacedata | 7 +++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 18807 bytes .../xcshareddata/xcschemes/Example.xcscheme | 4 ++- .../xcschemes/GradientView.xcscheme | 4 ++- 5 files changed, 36 insertions(+), 5 deletions(-) create mode 100644 Gradient View.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Gradient View.xcodeproj/project.xcworkspace/xcuserdata/farzadshbfn.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/Gradient View.xcodeproj/project.pbxproj b/Gradient View.xcodeproj/project.pbxproj index 832eec3..755c471 100644 --- a/Gradient View.xcodeproj/project.pbxproj +++ b/Gradient View.xcodeproj/project.pbxproj @@ -187,16 +187,16 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0800; + LastUpgradeCheck = 0920; ORGANIZATIONNAME = "Sam Soffes"; TargetAttributes = { 2163B9F51A25FBF000610B0C = { CreatedOnToolsVersion = 6.1; - LastSwiftMigration = 0800; + LastSwiftMigration = 0920; }; 2163BA1F1A25FBFD00610B0C = { CreatedOnToolsVersion = 6.1; - LastSwiftMigration = 0800; + LastSwiftMigration = 0920; }; }; }; @@ -286,14 +286,20 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -335,14 +341,20 @@ CLANG_ENABLE_CODE_COVERAGE = NO; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -377,6 +389,8 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.samsoffes.gradient-view.example"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -389,6 +403,8 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.samsoffes.gradient-view.example"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; }; name = Release; }; @@ -417,6 +433,8 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -441,6 +459,8 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.samsoffes.gradient-view"; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; diff --git a/Gradient View.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Gradient View.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Gradient View.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Gradient View.xcodeproj/project.xcworkspace/xcuserdata/farzadshbfn.xcuserdatad/UserInterfaceState.xcuserstate b/Gradient View.xcodeproj/project.xcworkspace/xcuserdata/farzadshbfn.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..65a362f8dfc5d1e26eaa441ceb1655a96ef4cde8 GIT binary patch literal 18807 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 literal 0 HcmV?d00001 diff --git a/Gradient View.xcodeproj/xcshareddata/xcschemes/Example.xcscheme b/Gradient View.xcodeproj/xcshareddata/xcschemes/Example.xcscheme index ad4cd24..d9b62cd 100644 --- a/Gradient View.xcodeproj/xcshareddata/xcschemes/Example.xcscheme +++ b/Gradient View.xcodeproj/xcshareddata/xcschemes/Example.xcscheme @@ -1,6 +1,6 @@ @@ -36,6 +37,7 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + language = "" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO"