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];
相关文章
相关标签/搜索