         label.text = item.title
         imageView.image = item.image
     }
+    
+    public override func update(for selectionState: TMBarButton.SelectionState) {
+        super.update(for: selectionState)
+        
+        if shrinksImageWhenUnselected {
+            let interpolatedScale = 1.0 - ((1.0 - selectionState.rawValue) * (1.0 - Defaults.shrunkenImageScale))
+            imageView.transform = CGAffineTransform(scaleX: interpolatedScale, y: interpolatedScale)
+        }
+    }
 }

        static let imageSize = CGSize(width: 30.0, height: 30.0)
        static let labelPadding: CGFloat = 4.0
        static let labelTopPadding: CGFloat = 6.0
    }
    
    // MARK: Properties

            imageView.contentMode = newValue
        } get {
            return imageView.contentMode
        }
    }
    /// Whether to shrink the image view when unselected.
    ///
    /// Defaults to true.
    public var shrinksImageWhenUnselected: Bool = true {
        didSet {
            guard shrinksImageWhenUnselected else {
                return
            }
            if !self.isSelected {
                imageView.transform = CGAffineTransform(scaleX: Defaults.shrunkenImageScale, y: Defaults.shrunkenImageScale)
            }
        }
    }
    
