1. 程式人生 > >UINavigationBar 自定義,title設定

UINavigationBar 自定義,title設定

簡介

UINavigationBar是用於實現管理層級關係內容的元件,直接繼承自UIView。通常用在UINavgationController類中,用於管理和顯示UINavgationController的subViewController , 同時UINavgationBar也可以單獨使用,新增至任何的UIView中。UINavigationBar比較重要的屬性為,左側按鈕,中間的標題,以及右側按鈕。 

設定外觀

通過barStyle,titColor,以及translucent屬性,我們可以簡單的定製UINavgationBar的外觀。 

其中barStyle對用的樣式外觀的列舉量包括: 


1 UIBarStyleDefault,對應一個藍色漸變背景
2 UIBarStyleBlack,對應一個不透明的褐色背景樣式。
3 UIBarStyleBlackOpaque,等用於UIBarStyleBlack樣式,但規定為棄用型別,
4 UIBarStyleBlackTranslucent,等用於barStyle設定為UIBarStyleBlack,同時指定translucent屬性為YES,規定為棄用型別。

translucent屬性控制bar的背景是否擁有部分透明效果,當值設定為YES時,無論是什麼樣式的navgation bar,其背景都是部分透明的。 

新增內容

UINavgationBar雖然直接繼承於UIView,但其本身並不是同其它UIView一樣通過addSubview去新增內容,比較特殊的是,需要通過navgation item類向其補充指定的 內容,包括按鈕和標題。究其原因是在設計上UINavgationBar是通過維護一個UINavgationItem物件棧來實現管理具有層級關係的檢視內容。通過 
1
- (void)pushNavigationItem:(UINavigationItem *)item animated:(BOOL)animated
2
3 - (UINavigationItem *)popNavigationItemAnimated:(BOOL)animated
4
5 - (void)setItems:(NSArray *)items animated:(BOOL)animated

三個方法,來向navgation bar中新增或移除內容。 

UINavgationBar的items屬性儲存了所有的item,為陣列型別,通過items屬性我們可以遍歷所有的item元素。 

UINavgationBar的topItem指定了當前navgation bar顯示的內容,topItem為棧頂元素,假如當前navgation bar維護了n個items,那麼topItem的索引為n-1 ; 

UINavgationBar的backItem儲存了topItem的下一個item,即索引為n-2的item。如果當前只有一個item,那麼該屬性為nil,而不是與topItem指向相同的item。 

UINavgationItem

該類封裝了關於UINavgationBar的物件棧中的顯示資訊,需要注意的是其直接繼承自NSObject型別,從名稱上注意不要把其當做是UIView的子類。通過 

1 - (id)initWithTitle:(NSString *)title

方法來新建一個UINavgationItem物件,其中title則為顯示在UINavgationBar中間的文字標題。並且該引數會將文字內容儲存在UINavgationItem的title屬性中。在新的 UINavgationItem物件生成之後,通過改變其title屬性,也可以更新UInavgationBar的中間的文字標題內容。同時UINavgationItem提供了titleView屬性,來讓我們更加靈活的定製UINavgationBar中間顯示內容,而不僅限於顯示普通的文字標題。有時間在對其進行詳細描述,此處只是簡單提示一下。本篇不對其進行詳細介紹, 

設定title樣式

UINavgationBar提供了titleTextAttributes 屬性來簡單的設定其title樣式,titleTextAttributes是一個NSDictionary型別,包含的固定的屬性名稱,可以用來設定title的樣式,指定的屬性keys聲明於NSString UIKit Additions Reference擴充套件中,包括: 
1 NSString *const 

相關推薦

UINavigationBar 定義title設定

簡介 UINavigationBar是用於實現管理層級關係內容的元件,直接繼承自UIView。通常用在UINavgationController類中,用於管理和顯示UINavgationController的subViewController , 同時UINav

pytorch中的L2和L1正則化定義優化器設定等操作

在pytorch中進行L2正則化,最直接的方式可以直接用優化器自帶的weight_decay選項指定權值衰減率,相當於L2正則化中的λλ,也就是: Lreg=||y−y^||2+λ||W||2(1)(

PyCharm個性化風格及定義背景圖案設定方法

相信每個已經安裝PyCharm的小夥伴都希望自己的coding Idea可以有些屬於自己的個性化定製。 可能很多coding software都支援黑白風格的是設定,關於背景圖片的設定卻不是每個軟體都具有的功能! 案例軟體版本 PyCharm 2018.1.5

不用定義ImageView實現圓角的兩種方式

不多廢話,直切主題。 方案一、利用CardView巢狀ImageView實現圓角。具體實現方式見文章《CardView的使用》 方案二、利用Glide的RequestOptions.bitmapTransform來實現,很簡單,具體如下: RoundedCorn

JQuery定義屬性的設定和獲取

Jquery操作自定義屬性的方法,很簡潔: Js程式碼 收藏程式碼 1.KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲test").attr("te…("#test").remove

Android 定義view-如何設定TextView drawableLeft 圖片大小?

2017/09/07更新 開發過程中,越發強烈的覺得需要對TextView進一步封裝 1.TextView需要設定背景或者邊框時需要編寫大量的selector,稍微修改一下樣式又得編寫一個新的selector,這個實在不能忍! 2.使用原生TextView

mybatis generator 定義 xml 檔名稱和內容定義dao名稱定義

最近在用mybatis generator 生成程式碼的時候,生成的xml檔案 和類檔案 不是自己想要的,於是修改mybatis generator 的原始碼,重寫方法來達到效果,這裡記錄一下,後期如果需要還可以隨便改成自己想要的! 一 修改註釋     &nb

android 反射實現定義toast 自由設定消失時間

先上一張圖,再說話: 在android中,Toast是用來實現簡要資訊展示,與介面無關的一種無可點選操作的懸浮層,它和PopupWindow還有dialog不同,popupWindow和dialog是基於activity,detcorView來展示的,它們顯示的時候

Android 定義 Dialog 佈局設定高度 wrap_content 無效

以前的一個 Dialog 的自定義佈局的根佈局的寬度是寫死的,高度是 wrap_content 的。後來加了幾行內容後,發現內容總是顯示不全,高度沒有自適應,似乎變成了一個固定高度。根佈局是一個垂直的 LinearLayout,之前的內容比較少,所以沒發現問題。這期在底部添加

Android 定義DialogFragment 以及設定寬高

         DialogFragment  的特點是具有dialog 的 效果,同時又可以擁有Fragment 的生命週期,因此我們可以像管理Fragment 一樣管理DialogFragment 。在 Android  中我們已經Dialog  類了,為什麼還要增加一

Unity 進行曲線軌跡定義以及根據定義曲線軌跡運動

1. 當你需要相機鏡頭根據特定軌跡運動。或者一些AI的特定軌跡運動的時候。就可以用到下面的指令碼了 一下方法來自官方案例 直接程式碼嘍。你需要做的就是,複製到你的專案中。拖在指令碼上,你就知道他怎麼用了。 一共兩個指令碼,一個是自定義軌跡的,另一個是使物

setenv bootcmd時系統啟動無法設定成功

問題,如題 uboot下呼叫命令: setenv bootcmd kload 0x2000000;bootm 0x2000000 結果就自動載入核心運行了,重啟後發現bootcmd的引數並沒有設定成功。 驚了個呆! setenv時會把所設定的命令執行一

IOS開發—無需定義修改tabbar背景顏色

UIView *backView = [[UIViewalloc] initWithFrame:CGRectMake(0, 0, kDeviceW, 49)];     backView.backgroundColor = kAppColorLightGray;     [

關於H5中定義屬性的設定和獲取

自定義資料屬性是在HTML5中新加入的一個特性。簡單來說,自定義資料屬性規範規定任何以data-開頭屬性名並且賦值。自定義資料屬性是為了儲存頁面或者應用程式的私有自定義資料,這些自定義資料屬性儲存進DOM中,對於整個DOM的佈局和表現無任何影響,但是卻可以方便操控整個網頁的

定義PopupWindow並且設定背景色變暗的2種方法(蒙層效果)

private Context context;private TextView tv, tv_1, tv_2, tv_3;private PopupWindow mPopupWindow;private RelativeLayout rl_out;@Overrideprotected void onCrea

關於SpringBoot的application.yml的相關配置(定義開發測試正式)切換

spring boot遵循“約定優於配置”的原則,使用annotation對一些常規的配置項做預設配置,減少或不使用xml配置,讓你的專案快速執行起來。spring boot的神奇不是藉助程式碼的生成來實現的,而是通過條件註解來實現的。1.自定義配置,我們用yml配置我們自己

定義控制元件 設定系統音量時 遮蔽掉系統帶音量控制條

audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioMa

Android定義View 定義xml屬性設定

Android自定義View實現很簡單 繼承View,重寫建構函式、onDraw,(onMeasure)等函式。 如果自定義的View需要有自定義的屬性,需要在values下建立attrs.xml。在其中定義你的屬性。 在使用到自定義View的xml佈局檔案中需要加

iOS中定義進度條設定半透明背景(Swift 3)

在顯示進度條的時候,有時候會發現用自帶的progressView可自定義的屬性比較少,並不能滿足某些需求,繼承UIView重新實現一個也挺方便的,自定義progress view 程式碼如下: import Foundation import UIKit

c# winform 打包部署 定義介面 或設定開機啟動

方法一: 建立安裝部署這部分就不用說了,新增安裝部署專案後,滑鼠右鍵安裝專案->檢視->登錄檔, 要使軟體在開機就執行,可以在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run中新