国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[iOS微博項目-1.1]-設置導航欄主題(統一樣式)

2019-11-14 19:35:03
字體:
來源:轉載
供稿:網友
A.導航欄兩側文字按鈕
1.需求:
所有導航欄兩側的文字式按鈕統一樣式
普通樣式:橙色
高亮樣式:紅色
不可用樣式:亮灰
陰影:不使用
字體大小:15
 
 
2.實現效果
默認樣式:
defaultNavTitlteItemStyle
 
統一使用樣式:
modifiedNavBarButtontemStyle
 
3.思路
  • 在創建item的時候逐個設置:代碼超級冗余
  • 抽取創建公共父類:稍好的選擇,但是繼承了此公共父類的控制器,就不能操作其去繼承系統自帶的控制器類了,造成很大的隱患。iOS中控制器不建議提取公共父類,最好直接繼承系統自帶控制器。
  • 使用主題appearance統一設置所有UIBarButtonItem的樣式:采用!在自定義的UINavigationController的類初始化方法中實現一次,就可以改變所有使用了此類的BarButtonItem樣式
 
4.實現
HVWNavigationViewController.m:
 1 /** 類初始化的時候調用 */ 2 + (void)initialize { 3     // 初始化導航欄樣式 4     [self initNavigationBarTheme]; 5     6     // 初始化導航欄item樣式 7     [self initBarButtonItemTheme]; 8 } 9  10 /** 統一設置導航欄item的樣式 11 * 因為是通過主題appearence統一修改所有NavivationBar的樣式,可以使用類方法12 */13 + (void) initBarButtonItemTheme {14     // 設置導航欄,修改所有UINavigationBar的樣式15     UIBarButtonItem *appearance = [UIBarButtonItem appearance];16    17     // 設置noraml狀態下的樣式18     NSMutableDictionary *normalTextAttr = [NSMutableDictionary dictionary];19     // 字體大小20     normalTextAttr[NSFontAttributeName] = [UIFont systemFontOfSize:15];21     // 字體顏色22     normalTextAttr[NSForegroundColorAttributeName] = [UIColor orangeColor];23     // 設置為normal樣式24     [appearance setTitleTextAttributes:normalTextAttr forState:UIControlStateNormal];25    26     // 設置highlighted狀態下的樣式27     NSMutableDictionary *highlightedTextAttr = [NSMutableDictionary dictionaryWithDictionary:normalTextAttr];28     // 字體顏色29     highlightedTextAttr[NSForegroundColorAttributeName] = [UIColor redColor];30     // 設置為normal樣式31     [appearance setTitleTextAttributes:highlightedTextAttr forState:UIControlStateHighlighted];32    33     // 設置disabled狀態下的樣式34     NSMutableDictionary *disabledTextAttr = [NSMutableDictionary dictionaryWithDictionary:normalTextAttr];35     // 字體顏色36     disabledTextAttr[NSForegroundColorAttributeName] = [UIColor lightGrayColor];37     // 設置為normal樣式38     [appearance setTitleTextAttributes:disabledTextAttr forState:UIControlStateDisabled];39   40 }
 
B.設置導航欄樣式
1.需求:
  • 統一顯示文字顏色:黑色
  • 文字陰影:禁止
  • 字體大小:20
 
Image(73)
 
2.思路:同“A”
 
3.實現:
同“A"
HVWNavigationViewController.m:
 1 /** 統一設置導航欄樣式 */ 2 + (void) initNavigationBarTheme { 3     // 使用appearence(主題)設置,統一修改所有導航欄樣式 4     UINavigationBar *appearance = [UINavigationBar appearance]; 5     6     // 為了統一iOS6和iOS7,iOS6需要設置導航欄背景來模擬iOS7的效果 7     if (!iOS7) { 8         [appearance setBackgroundImage:[UIImage imageWithNamed:@"navigationbar_background"] forBarMetrics:UIBarMetricsDefault]; 9     }10    11     // 設置屬性12     NSMutableDictionary *attr = [NSMutableDictionary dictionary];13     // 設置字體14     attr[NSForegroundColorAttributeName] = [UIColor blackColor];15     attr[NSFontAttributeName] = [UIFont systemFontOfSize:20];16     // 消去文字陰影,設置陰影偏移為017     NSShadow *shadow = [[NSShadow alloc] init];18     shadow.shadowOffset = CGSizeZero;19     attr[NSShadowAttributeName] = shadow;20    21     [appearance setTitleTextAttributes:attr];22 }
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿巴嘎旗| 绵竹市| 桓台县| 安达市| 定边县| 乡宁县| 大邑县| 甘肃省| 南宁市| 五大连池市| 龙岩市| 佛山市| 营山县| 台北市| 筠连县| 嵊泗县| 南城县| 遂川县| 建平县| 油尖旺区| 蒙城县| 大港区| 南木林县| 武鸣县| 安阳县| 滦平县| 合山市| 探索| 玉山县| 永泰县| 汾西县| 海盐县| 兰溪市| 新晃| 哈密市| 若羌县| 柳河县| 澳门| 玉山县| 静宁县| 绿春县|