翻译UINavigationBar的translucent属性在其头文件定义处的注释

来源:互联网 发布:全国社保统筹 知乎 编辑:程序博客网 时间:2024/05/10 11:14

先吐槽一下,apple的注释写得挺绕的,一大堆的后置定语。


translucent

iOS7下具有新的行为。

你可以通过设置这个属性为NO,强制背景为不透明。


如果没有明确的设定translucent的值,则系统会由当前上下文推断出一个值来。

如果导航栏的背景图为自定义,translucent的值将从背景图的alpha值推断而来,

背景图只要有一个像素的alpha值<1.0,则translucent的值就推断为YES。


如果设置translucent为YES,而自定义背景图却是不透明的,则系统会给图片加上一个小于1.0的系统预定义的透明度。


如果translucent置为NO,而自定义的背景图却是半透明的,

如果bar设置了barTintColor的值, 系统将会给背景图设置一个barTintColor色的不透明背景。

如果bar的barTintColor的值为nil,  背景图的不透明背景由状态栏的barStyle决定,如果状态栏的barStyle值为UIBarStyleBlack则为黑色,为UIBarStyleDefault则为白色。


在iOS6及之前,translucent的默认值为NO。

之后,如果barStyle设为UIBarStyleBlackTranslucent则其值为YES



名词解释:

translucent:半透明

opaque:不透明

opacity:透明



原文:


/*

 New behavior on iOS 7.

 Default is YES.

 You may force an opaque background by setting the property to NO.

 If the navigation bar has a custom background image, the default is inferred 

 from the alpha values of the image—YES if it has any pixel with alpha < 1.0

 If you send setTranslucent:YES to a bar with an opaque custom background image

 it will apply a system opacity less than 1.0 to the image.

 If you send setTranslucent:NO to a bar with a translucent custom background image

 it will provide an opaque background for the image using the bar's barTintColor if defined, or black

 for UIBarStyleBlack or white for UIBarStyleDefault if barTintColor is nil.

 */

@property(nonatomic,assign,getter=isTranslucent)BOOL translucentNS_AVAILABLE_IOS(3_0);// Default is NO on iOS 6 and earlier. Always YES if barStyle is set to UIBarStyleBlackTranslucent


0 0
原创粉丝点击