首页 > 代码库 > UINavigationBar的translucent属性在头文件中注释的翻译

UINavigationBar的translucent属性在头文件中注释的翻译

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



translucent

iOS7下具有新的行为。

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


如果导航栏的背景图为自定义,其默认值将从背景图的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