基本樣式 | GIF |
---|---|
00-00.顏色效果 - RGB漸變 |
![]() |
00-01.顏色效果 - 填充漸變 |
![]() |
00-02.顏色效果 - 無漸變 |
![]() |
00-03.切換樣式 - 字體放大 |
![]() |
00-04.切換樣式 - 下劃線 |
![]() |
00-05.切換樣式 - 遮罩 |
![]() |
00-06.切換樣式 - 字體放大 - 延遲 |
![]() |
00-07.切換樣式 - 下劃線 - 延遲 |
![]() |
00-08.切換樣式 - 遮罩 - 延遲 |
![]() |
00-09.附加效果 - 標題欄下方分割線 |
![]() |
00-10.附加效果 - 標題文字之間分割線 |
![]() |
00-11.對齊方式 -- 左對齊 |
![]() |
00-12.對齊方式 -- 右對齊 |
![]() |
00-13.對齊方式 -- 居中 |
![]() |
00-14.對齊方式 -- SpaceAround |
![]() |
00-15.字體放大效果時對其方式 -- 居中對齊 |
![]() |
00-16.字體放大效果時對其方式 -- 上對齊 |
![]() |
00-17.字體放大效果時對其方式 -- 下對齊 |
![]() |
根據上方的基本樣式能夠進行自由組合,從而達到你想要的效果;因組合樣式過多,下方列出了部分svg
組合樣式 | GIF |
---|---|
01-00.字體放大 - 顏色RGB漸變 |
![]() |
01-01.字體放大 - 顏色填充漸變 |
![]() |
01-02.字體放大 - 顏色無漸變 |
![]() |
01-03.字體放大(延遲) - 顏色RGB漸變 |
![]() |
01-04.字體放大(延遲) - 顏色填充漸變 |
![]() |
01-05.字體放大(延遲) - 顏色無漸變 |
![]() |
01-06.下劃線 - 顏色RGB漸變 |
![]() |
01-07.下劃線 - 顏色填充漸變 |
![]() |
01-08.下劃線 - 顏色無漸變 |
![]() |
01-09.下劃線(延遲) - 顏色RGB漸變 |
![]() |
01-10.下劃線(延遲) - 顏色填充漸變 |
![]() |
01-11.下劃線(延遲) - 顏色無漸變 |
![]() |
01-12.下劃線(固定寬度)- 顏色RGB漸變 |
![]() |
01-13.下劃線(固定寬度)- 顏色填充漸變 |
![]() |
01-14.下劃線(固定寬度)- 顏色無漸變 |
![]() |
01-15.下劃線(延遲 && 固定寬度)- 顏色RGB漸變 |
![]() |
01-16.下劃線(延遲 && 固定寬度)- 顏色填充漸變 |
![]() |
01-17.下劃線(延遲 && 固定寬度)- 顏色無漸變 |
![]() |
01-18.下劃線(比例寬度)- 顏色RGB漸變 |
![]() |
01-19.下劃線(比例寬度)- 顏色填充漸 |
![]() |
01-20.下劃線(比例寬度)- 顏色無漸變 |
![]() |
01-21.下劃線(延遲 && 比例寬度)- 顏色RGB漸變 |
![]() |
01-22.下劃線(延遲 && 比例寬度)- 顏色填充漸變 |
![]() |
01-23.下劃線(延遲 && 比例寬度)- 顏色無漸變 |
![]() |
01-24.下劃線(延展)- 顏色RGB漸變 |
![]() |
01-25.下劃線(延展)- 顏色填充漸變 |
![]() |
01-26.下劃線(延展)- 顏色無漸變 |
![]() |
01-27.下劃線(延展 && 固定寬度)- 顏色RGB漸變 |
![]() |
01-28.下劃線(延展 && 固定寬度)- 顏色填充漸變 |
![]() |
01-29.下劃線(延展 && 固定寬度)- 顏色無漸變 |
![]() |
01-30.下劃線(延展 && 比例寬度)- 顏色RGB漸變 |
![]() |
01-31.下劃線(延展 && 比例寬度)- 顏色填充漸變 |
![]() |
01-32.下劃線(延展 && 比例寬度)- 顏色無漸變 |
![]() |
01-33.遮罩 - 顏色RGB漸變 |
![]() |
01-34.遮罩 - 顏色填充漸變 |
![]() |
01-35.遮罩 - 顏色無漸變 |
![]() |
01-36.遮罩(延遲) - 顏色RGB漸變 |
![]() |
01-37.遮罩(延遲) - 顏色填充漸變 |
![]() |
01-38.遮罩(延遲) - 顏色無漸變 |
![]() |
01-39.遮罩(固定寬度)- 顏色RGB漸變 |
![]() |
01-40.遮罩(固定寬度)- 顏色填充漸變 |
![]() |
01-41.遮罩(固定寬度)- 顏色無漸變 |
![]() |
01-42.遮罩(延遲 && 固定寬度)- 顏色RGB漸變 |
![]() |
01-43.遮罩(延遲 && 固定寬度)- 顏色填充漸變 |
![]() |
01-44.遮罩(延遲 && 固定寬度)- 顏色無漸變 |
![]() |
01-45.字體放大 && 下劃線 - 顏色填充漸變 |
![]() |
01-46.字體放大 && 下劃線 && 延遲 - 顏色無漸變 |
![]() |
01-47.字體放大 && 下劃線(延展)- 顏色填充漸變 |
![]() |
01-48.字體放大 && 下劃線(延展 && 固定寬度 )- 顏色填充漸變 |
![]() |
01-49.字體放大 && 下劃線(延展 && 比例寬度 )-顏色填充漸變 |
![]() |
01-50.字體放大 && 下劃線(延展 && 放大時下對齊 )-顏色填充漸變 |
![]() |
01-51.字體放大 && 下劃線(延展 && 放大時下對齊 && 左對齊)-顏色填充漸變 |
![]() |
其餘樣式 | GIF |
---|---|
02-00.標題欄背景色 |
![]() |
02-01.標題欄背景圖片 |
![]() |
02-02.rightView |
![]() |
use_frameworks!
target '<Your Target Name>' do
pod 'CMPageTitleView'
end
複製代碼
將 CMPageTitleView/CMPageTitleView/Class
路徑下的全部文件拖拽到你的項目中.佈局
首先, 先要導入.h頭文件.性能
若是cocoaposd安裝:
#import <CMPageTitleView/CMPageTitleView.h>
複製代碼
若是手動安裝:
#import "CMPageTitleView.h"
複製代碼
建立CMPageTitleView 後,建立CMPageTitleConfig 對象並設置所需配置:
CMPageTitleView *pageView = [[CMPageTitleView alloc] initWithFrame:frame];
pageView.delegate = self;
CMPageTitleConfig *config = [CMPageTitleConfig defaultConfig];
config.cm_childControllers = self.childControllers; //必傳參數
[self.view addSubview:pageView];
複製代碼
一樣支持Masonry佈局,代碼以下:
CMPageTitleView *pageView = [[CMPageTitleView alloc] init];
[self.view addSubview:pageView];
[pageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(0);
make.top.mas_equalTo(CM_NAVI_BAR_H);
make.height.mas_equalTo(CM_SCREEN_H - CM_NAVI_BAR_H);
}];
pageView.delegate = self;
CMPageTitleConfig *config = [CMPageTitleConfig defaultConfig];
config.cm_childControllers = self.childControllers;//必傳參數
pageView.cm_config = config;
複製代碼
按照上方代碼,你已經建立了一個最簡單的菜單欄🎉
配置 | 描述 |
---|---|
cm_gradientStyle | 顏色漸變樣式CMTitleColorGradientStyle_None ( 顏色無漸變)CMTitleColorGradientStyle_RGB (RGB顏色漸變) CMTitleColorGradientStyle_Fill (填充色顏色漸變) |
cm_switchMode | 標題切換樣式CMPageTitleSwitchMode_Scale (字體放大)CMPageTitleSwitchMode_Underline (下劃線樣式)CMPageTitleSwitchMode_Cover (遮罩樣式)CMPageTitleSwitchMode_Delay (滑動切換時延遲,配合其餘樣式使用) |
cm_additionalMode | 標題欄附加樣式CMPageTitleAdditionalMode_Seperateline (標題欄下方的分割線)CMPageTitleAdditionalMode_Splitter (標題文字之間的分割線) |
cm_contentMode | 對齊方式CMPageTitleContentMode_Center (左右邊距與標題間距一致)CMPageTitleContentMode_SpaceAround (左右邊距等於標題間距的一半)CMPageTitleContentMode_Left (左對齊)CMPageTitleContentMode_Right (右對齊) |
cm_scaleGradientContentMode | 垂直方向上的對齊方式CMPageTitleScaleGradientContentMode_Center (居中)CMPageTitleScaleGradientContentMode_Top (上對齊)CMPageTitleScaleGradientContentMode_Bottom (下對齊)注意: 只有屬性cm_switchMode 包含CMPageTitleSwitchMode_Scale 下才有效果 |
cm_childControllers | 子視圖控制器數組 |
cm_titles | 標題數組 |
cm_font | 標題正常字體 默認字體大小: [UIFont systemFontOfSize:15] |
cm_selectedFont | 標題選中字體 默認選中字體大小: cm_font 的1.15倍 |
cm_backgroundColor | 視圖的背景色 默認顏色: [UIColor whiteColor] |
cm_normalColor | 標題正常顏色 默認顏色: [UIColor blackColor] |
cm_selectedColor | 標題選中顏色 默認顏色: [UIColor redColor] |
cm_titleHeight | 標題高度 默認高度:44 |
cm_slideGestureEnable | 是否支持側滑 默認值: YES |
cm_titleMargin | 標題之間的間隔 |
cm_minTitleMargin | 最小的標題間距 默認值爲 20 |
cm_defaultIndex | 默認選擇的index 默認選擇第0個 |
cm_seperaterLineColor | 標題欄下方分割線的顏色 默認顏色: [UIColor grayColor] |
cm_seperateLineHeight | 標題分割線的高度 默認值:1px |
cm_splitterColor | 標題之間的分割線顏色 默認爲: [UIColor lightGrayColor] |
cm_splitterSize | 標題之間的分割線size 默認寬度:1px 默認高度:標題欄高度的一半 |
cm_animationDruction | 下劃線和遮罩,在點擊標題時,動畫的時間間隔 默認值爲:0.25 注意: 取值範圍 0.25~0.8(超出範圍會使用默認值) |
cm_rightView | 垂直方向上的對齊方式 默認值: CMPageTitleVerticalContentMode_Center 注意: 只有屬性cm_switchMode 包含CMPageTitleSwitchMode_Scale 下有效果 |
cm_parentController | 父視圖控制器 |
cm_scale | 標題的縮放等級 默認爲 1.15注意: 不建議依賴該屬性,後期可能會廢棄,可使用cm_selectedFont 配合cm_font 屬性進行設置) |
cm_titleWidths | 標題寬度數組注意:readonly |
cm_minContentWidth | 標題的總寬度 + 左右邊距 + 全部的標題最小間距注意:readonly |
cm_titlesWidth | 全部標題的總寬度注意: readonnly ) |
cm_underlineBorder | 下劃線視圖是否圓角 默認值: NO |
cm_underlineHeight | 下劃線高度 默認值:2 |
cm_underlineWidth | 下劃線寬度 默認狀況下跟隨文字寬度,可是設置該屬性後下劃線會固定使用該寬度 |
cm_underlineWidthScale | 下劃線跟隨文字寬度 * cm_underlineWidthScale 注意: 比例範圍 0 ~ 1.3(超出 1.3 按 1.0 處理) |
cm_underlineColor | 下劃線顏色 默認跟隨標題的選中顏色 |
cm_underlineStretch | 下劃線是否延長 默認值: NO (具體效果能夠看github效果展現) |
cm_coverColor | 遮罩顏色 |
cm_coverRadius | 遮罩圓角半徑 默認爲 cover高度的一半 |
cm_coverWidth | 遮罩固定寬度 注意: 未作最大最小限制,請根據實際狀況妥善設置 |
cm_coverVerticalMargin | 遮罩垂直方向邊距注意: 未作最大最小限制,請根據實際狀況妥善設置 |
cm_coverHorizontalMargin | 遮罩水平方向邊距注意: 未作最大最小限制,請根據實際狀況妥善設置 |
注意: 假若須要複雜效果,能夠經過建立CMPageTitleConfig
對象中的 cm_gradientStyle
(顏色漸變樣式)、cm_switchMode
(標題切換樣式)、cm_additionalMode
(附加效果)、cm_contentMode
(對齊方式)、cm_scaleGradientContentMode
(放大效果時的對齊樣式)等基本樣式的組合實現各類複雜效果,能夠下載Demo查看具體效果,可是能實現的組合遠遠不止這些,更多組合能夠集成到項目中嘗試😊
cm_selectedFont
屬性,便於設置選中字體大小;cm_seperateLineHeight
爲0時無效的問題cm_animationDruction
屬性,便於用戶設置動畫時間cm_verticalContentMode
,能夠設置標題文字垂直方向的對齊方式cm_additionalMode
,便於設置分割線cm_backgroundColor
效果;CMPageTitleView
中新增-(void)cm_reloadConfig
方法,便於用戶刷新配置CMPageTitleView
中新增-(void)cm_reloadConfig
方法,便於用戶刷新配置;CMPageTitleContentView
對象尺寸不許確問題NSLayoutConstraint
優化界面佈局CMPageTitleConfig
類的getter
方法,大幅提升三方庫性能cm_defaultIndex
爲非0時,界面動畫閃動問題CMPageTitleView 基於MIT許可