iOS雜貨

iOS 導航欄TitleView居中的問題

titleVIew 默認狀況下 是居中顯示的,出現不居中的狀況緣由有兩個:1,leftBarButtonItem,和rightBarButtonItem 留給titleView 的空間過小致使。 2,你本省自定義的titleView 沒有居中,就像若是你的titleView 是個lab ,而lab的textAlengent 沒有爲center 同樣。html

對於第一種,咱們能夠適當減少title的寬度,或者 設置 sizeThatFIts來解決。app

 

 

iOS開發之Autolayout——「Content Compression Resistance」「Content Hugging」

intrinsic size(固有尺寸),一個根據自身內容大小而決定的尺寸。咱們都知道,UIButton、UILabel等,在佈局時並不須要給它們設置全部constraints,只須要設置 leading space 和 top space 等能決定 X跟Y的constraints 就可以進行佈局,這就是它們的intrinsic size在起做用,決定它們的寬高。佈局

 

「Content Compression Resistance Priority」,也叫內容壓縮阻力優先級(小名:別擠我),該優先級越高,則越晚輪到被壓縮。測試

「Content Hugging Priority」,也叫內容緊靠優先級(小名:別扯我),該優先級越高,這越晚輪到被拉伸。字體

 

sizeToFit

sizeToFit()聲明在UIView中,因此咱們的全部的視圖控件,均可以調用這個方法spa

sizeToFit若是不重寫sizeThatsFit的話是系統提供frame。code

 

self.title & self.navigationItem.title

self.title至關因而同時設置tabBarItem.title和navigationItem.title的快捷方法,而tabBarItem.title纔是真正對應tab的標題,navigationItem.title對應NavigationBar上面的標題。orm

UIStatusBar

狀態欄的windowLevel爲UIWindowLevelStatusBar,而window的windowLevel爲UIWindowLevelNormal。因此通常狀況下,狀態欄位於window之上。htm

 UIStatusBar的位置和尺寸

1 NSString *statusBarFrame = NSStringFromCGRect([UIApplication sharedApplication].statusBarFrame);blog

NSLog(, statusBarFrame);

在iPhone 6豎屏測試輸出:

2015-08-04 16:33:47.159 Test[6175:205261] {{0, 0}, {375, 20}}

在iPhone 6橫屏測試輸出:

2015-08-04 16:33:47.159 Test[6175:205261] {{0, 0}, {667, 20}}

在iPhone 6 Plus豎屏測試輸出:

2015-08-04 16:33:47.159 Test[6175:205261] {{0, 0}, {414, 20}}

UIStatusBarStyle(字體顏色)和背景顏色

UIStatusBarStyle控制狀態欄的字體顏色,在iOS7只支持兩種:UIStatusBarStyleDefault、UIStatusBarStyleLightContent。注意,雖然目前表現出來的顏色是黑色或白色,但不是Black或White之類的,蘋果留了一手以防之後改變。Default表示深色(Dark),用於亮色(Light)背景;LightContent表示亮色(Light),用於深色(Dark)背景。固然這也不是強制的。
在沒有導航欄的狀況下,狀態欄的背景顏色是透明的,能夠在View裏添加一個20點高度的子View「僞造」一個背景;在有導航欄的狀況下,狀態欄的背景顏色和狀態欄同樣,看起來融爲了一體
 
注意:
若是要在App啓動時和運行時全程隱藏狀態欄,在View controller-based status bar appearance爲NO的狀況下,只需簡單將Status bar is initially hidden(UIStatusBarHidden)設置爲YES。

設置字體顏色爲白色

能夠在Info中將Status bar style(UIStatusBarStyle)對應的Value設置爲UIStatusBarStyeLightContent。
也能夠在General中將Status Bar style選擇爲Light:
一樣的,上面兩種設置方法最終做用到info.plist文件。若是沒有使用基於ViewController的狀態欄控制,而且App內部又須要將狀態欄顏色改成黑色,能夠在AppDelegate中設置:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
相關文章
相關標籤/搜索