         updateControlLayout()
     }
 
-    func setupUI() {
+    private func setupUI() {
         frame = defaultFrame
         
         // ScrollView

        }
        return []
    }()
    fileprivate var emojiPopView = ISEmojiPopView()
    public weak var delegate: ISEmojiViewDelegate?
    
    override init(frame: CGRect) {
        super.init(frame: frame)

    }
    
    //MARK: Action
    private func emojiButtonPressed(sender: UIButton) {
        if let emoji = sender.titleLabel?.text {
            self.delegate?.emojiViewDidSelectEmoji(emojiView: self, emoji: emoji)
        }
    }
    
    @objc private func deleteButtonPressed(sender: UIButton) {
        self.delegate?.emojiViewDidPressDeleteButton(emojiView: self)
    }
    
    @objc private func pageControlTouched(sender: UIPageControl) {
        var bounds = collectionView.bounds
        bounds.origin.x = bounds.width * CGFloat(sender.currentPage)
        collectionView.scrollRectToVisible(bounds, animated: true)
    }
    
    //MARK: Tools
    static private func thisBundle() -> Bundle {
        let podBundle = Bundle(for: ISEmojiView.classForCoder())
        if let bundleURL = podBundle.url(forResource: "ISEmojiView", withExtension: "bundle") {
            if let bundle = Bundle(url: bundleURL) {
