     }
 
     /**
-    Reload all pages data source
+    Reload all pages data source.
     */
     public func reloadData() {
         assert(self.firstVisiblePageIndex < self.numberOfPages, "firstVisiblePageIndex is less than numberOfPages")
+        assert(self.numberOfVisiblePages % 2 == 1, "numberOfVisiblePages only accepts odd.")
         self.updateData()
         self.emitArrivePageEvent()
     }

    */
    func numberOfVisiblePagesInUnlimitedScrollView(unlimitedScrollView: UnlimitedScrollView) -> Int
    /**
    Called when need to create page

    - parameter unlimitedScrollView: unlimitedScrollView view object
    - parameter index:               page index


@objc public protocol UnlimitedScrollViewDelegate {
    /**
    Called when arrived to page.

    - parameter unlimitedScrollView: unlimitedScrollView view object
    - parameter page:                arrived page
    */
    optional func unlimitedScrollViewArrivePage(unlimitedScrollView: UnlimitedScrollView, page: UnlimitedScrollViewPage)
    /**
    Called when leaved to page.

    - parameter unlimitedScrollView: unlimitedScrollView view object
    - parameter page:                leaved page
    */
    optional func unlimitedScrollViewLeavePage(unlimitedScrollView: UnlimitedScrollView, page: UnlimitedScrollViewPage)
    /**
    Called when removed to page.

    - parameter unlimitedScrollView: unlimitedScrollView view object
    - parameter page:                removed page
    */
    optional func unlimitedScrollViewRemovePage(unlimitedScrollView: UnlimitedScrollView, page: UnlimitedScrollViewPage)
    /**
    Called when added to page.

    - parameter unlimitedScrollView: unlimitedScrollView view object
    - parameter page:                added page
