From 1b09c7e6a869ad0ffdf60f773603266fabc487db Mon Sep 17 00:00:00 2001 From: Layne McIntyre Date: Mon, 17 Apr 2017 10:04:39 -0700 Subject: [PATCH] Adds ability for user to set selectedView when setting a custom view Deallocates customView before updating based on selection state to avoid a memory leak --- Pod/Classes/MenuItemView.swift | 6 ++++-- Pod/Classes/Protocols/MenuItemViewCustomizable.swift | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Pod/Classes/MenuItemView.swift b/Pod/Classes/MenuItemView.swift index 44e92278..e6625ba0 100644 --- a/Pod/Classes/MenuItemView.swift +++ b/Pod/Classes/MenuItemView.swift @@ -47,7 +47,9 @@ open class MenuItemView: UIView { descriptionWidthConstraint.constant = calculateLabelSize(descriptionLabel, maxWidth: maxWindowSize).width case let .image(image, selectedImage): menuImageView.image = isSelected ? (selectedImage ?? image) : image - case .custom: break + case let .custom(view, selectedView): + customView = nil + customView = isSelected ? (selectedView ?? view) : view } } } @@ -93,7 +95,7 @@ open class MenuItemView: UIView { self.setupImageView(image) self.layoutImageView() }) - case .custom(let view): + case .custom(let view, _): commonInit({ self.setupCustomView(view) self.layoutCustomView() diff --git a/Pod/Classes/Protocols/MenuItemViewCustomizable.swift b/Pod/Classes/Protocols/MenuItemViewCustomizable.swift index 8e58801f..aac61f4f 100644 --- a/Pod/Classes/Protocols/MenuItemViewCustomizable.swift +++ b/Pod/Classes/Protocols/MenuItemViewCustomizable.swift @@ -27,7 +27,7 @@ public enum MenuItemDisplayMode { case text(title: MenuItemText) case multilineText(title: MenuItemText, description: MenuItemText) case image(image: UIImage, selectedImage: UIImage?) - case custom(view: UIView) + case custom(view: UIView, selectedView: UIView?) } public struct MenuItemText {