一個(gè)簡(jiǎn)單的滾動(dòng)視圖封裝

前言

最近做了一個(gè)類(lèi)似網(wǎng)易新聞的滾動(dòng)視圖, 大致效果如下:


效果圖.gif

使用方法

    self.view.backgroundColor = [UIColor whiteColor];
    NSArray *vcs = [self setupChildVcAndTitle];
    CGRect frame = self.view.frame;
    if (self.navigationController) {
        frame.origin.y = 64;
    }
    WYPageView *page = [[WYPageView alloc] initWithFrame:frame childVcs:vcs parentViewController:self pageConfig:_config];
    [self.view addSubview:page];
    self.pageView = page;

支持:

  • 自定義指示器寬高
  • 自定義指示器滾動(dòng)效果
  • 可完全自定義指示器樣式
  • 支持標(biāo)題字體顏色漸變、縮放效果
  • 自定義標(biāo)題高度

文件介紹:

  • WYPageConfig: WYPageView的配置類(lèi),初始化可以傳入該對(duì)象,可配置titleViewcontentView的各種屬性,詳細(xì)配置可以查看WYPageConfig .h文件
  • WYPageTitleView: 標(biāo)題視圖
  • WYPageConetentView: 內(nèi)容視圖

WYPageConfig的部分配置信息

/**
 指示器類(lèi)型 默認(rèn)'WYPageTitleIndicatorViewStyleDownLine'
 */
@property (nonatomic , assign) WYPageTitleIndicatorViewStyle indicatorStyle;

/**
 指示器的位置 默認(rèn)在下面 'WYPageTitleIndicatorViewPositionStyleBottom'
 */
@property (nonatomic , assign) WYPageTitleIndicatorViewPositionStyle indicatorPositionStyle;

/**
 指示器高度 默認(rèn)'2'
 */
@property (nonatomic , assign) CGFloat indicatorViewHeight;

/**
 指示器顏色 默認(rèn)紅色 如果是自定義指示器 需要自己設(shè)置指示器背景顏色
 */
@property (nonatomic , strong) UIColor *indicatorViewColor;

/**
 指示器寬度是否等于標(biāo)題item的寬度 默認(rèn)'YES' YES: 相等 NO: 不相等,可以手動(dòng)設(shè)置'indicatorViewWidth'的值
 */
@property (nonatomic , assign) BOOL indicatorViewWidthEqualToItemWidth;

/**
 指示器的寬度 默認(rèn)'30' 在'indicatorViewWidthEqualToItemWidth'為'NO'時(shí)有效 如果是自定義指示器 會(huì)優(yōu)先使用其frame
 */
@property (nonatomic , assign) CGFloat indicatorViewWidth;

/**
 指示器的滾動(dòng)效果 默認(rèn)'WYIndicatorScrollAnimationValue1'
 */
@property (nonatomic , assign) WYIndicatorScrollAnimation indicatorViewScrollAnimation;

/**
 標(biāo)題之間的間隔 默認(rèn)'15'
 */
@property (nonatomic , assign) CGFloat titleMargin;

/**
 標(biāo)題字體大小 默認(rèn)'14'
 */
@property (nonatomic , strong) UIFont *titleFont;

/**
 標(biāo)題是否可以縮放 默認(rèn)NO
 */
@property (nonatomic , assign) BOOL canZoomTitle;

/**
 字體縮放比例 默認(rèn)'1.3'
 */
@property (nonatomic , assign) CGFloat titleZoomMultiple;

/**
 標(biāo)題正常狀態(tài)下字體顏色
 */
@property (nonatomic , strong) UIColor *normalTitleColor;

/**
 標(biāo)題選中狀態(tài)下字體顏色
 */
@property (nonatomic , strong) UIColor *selectedTitleColor;

具體可以點(diǎn)擊我的Github下載查看具體Demo,歡迎各位大神提供建議意見(jiàn)。

寫(xiě)在最后:

WYPageConetentView開(kāi)始的時(shí)候是使用的collectionView,但是最后發(fā)現(xiàn)使用collectionView時(shí)子控制器的生命周期不正確。譬如在滑動(dòng)結(jié)束后,不僅會(huì)加載當(dāng)前vc,還會(huì)加載下個(gè)vc的 viewDidLoad方法,而且因?yàn)?code>cell的重用機(jī)制,控制器的viewDidApperviewDidDisapper也會(huì)出現(xiàn)錯(cuò)亂。我想要的效果是在下一個(gè)vc出現(xiàn)的時(shí)候才會(huì)開(kāi)啟vc的生命周期,所以最后改用scrollView來(lái)替代了collectionView,如果有大神有更好的方法,請(qǐng)多多指教~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,365評(píng)論 4 61
  • 翻譯自“Collection View Programming Guide for iOS” 0 關(guān)于iOS集合視...
    lakerszhy閱讀 4,076評(píng)論 1 22
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點(diǎn)贊按鈕進(jìn)度條TabLayout圖標(biāo)下拉刷新...
    皇小弟閱讀 47,161評(píng)論 22 665
  • 1、感恩父母給予我生活。 2、感恩祖輩將我養(yǎng)育。 3、感恩母親、祖母為家的巨大付出。 4、感恩親友們對(duì)我家的照顧。...
    朱曉軍閱讀 218評(píng)論 0 1
  • 寒光一亮,鏘的一聲響, 霸王的尸首, 被虞姬死前滿足的眼神, 被赤泉侯的辟易數(shù)里, 被數(shù)萬(wàn)秦兵的濺血所淬亮。 才氣...
    三角洲特種兵閱讀 727評(píng)論 0 0

友情鏈接更多精彩內(nèi)容