     }
     
     func setPlayButtonToState(isPlaying: Bool) {
-        if isPlaying {
-            playButton.isSelected = true
-        } else {
-            playButton.isSelected = false
-        }
+        playButton.isSelected = isPlaying
+        setNeedsLayout()
     }
 }

        super.layoutSubviews()
        episodeImageView.frame = CGRect(x: imageViewPaddingX, y: imageViewPaddingY, width: imageViewWidth, height: imageViewHeight)
        let titleLabelX: CGFloat = episodeImageView.frame.maxX + imageViewLabelPadding
        let playButtonX: CGFloat = frame.width - playButtonPaddingX - playButtonWidth
        titleLabel.frame = CGRect(x: titleLabelX, y: imageViewPaddingY-2, width: playButtonX - titleLabelX, height: titleLabelHeight)
        detailLabel.frame = CGRect(x: titleLabelX, y: titleLabel.frame.maxY, width: titleLabel.frame.width, height:episodeImageView.frame.height - titleLabel.frame.height + 2)
        playButton.frame = CGRect(x: playButtonX, y: playButtonPaddingY, width: playButtonWidth, height: playButtonHeight)
        separatorInset = UIEdgeInsets(top: 0, left: titleLabelX, bottom: 0, right: 0)
    }
    

    let imageViewHeight: CGFloat = 48
    let imageViewLabelPadding: CGFloat = 12
    let titleLabelHeight: CGFloat = 36
    let titleLabelPlayButtonSpacing: CGFloat = 8
    let playButtonPaddingX: CGFloat = 18
    let playButtonPaddingY: CGFloat = 30
    let playButtonHeight: CGFloat = 30
    let playButtonWidthForSelected: CGFloat = 65
    let playButtonWidthForUnselected: CGFloat = 45
    
    var episodeImageView: UIImageView!
    var titleLabel: UILabel!
