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 translucent
NS_AVAILABLE_IOS(3_0);
// Default is NO on iOS 6 and earlier. Always YES if barStyle is set to UIBarStyleBlackTranslucent

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

时间: 2024-08-26 14:32:49

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

python3 实现对代码文件中注释的翻译

心血来潮,昨天看见群里讨论一段图片转pdf的代码,直接拿过来发现不能用,原来是因为代码中传的文件对象不对,源码中说传递的是一个文件路径或一个文件对象.他传的是一个文件名,很是尴尬. 想了想,主要原因还是因为很多人不看源码,看了源码经常因为大段的注释英文看不懂,很是尴尬. 然后想了想,是否可以写一个翻译功能对源码进行翻译.功能实现,代码如下: 翻译中文的代码(使用有道翻译= =): 1 def fanyi_youdao(self,content): 2 url = 'http://fanyi.yo

在类的头文件中尽量少引入其他头文件 &lt;&lt;Effective Objective-C&gt;&gt;

与C 和C++ 一样,Objective-C 也使用"头文件"(header file) 与"实现文件"(implementation file)来区隔代码.用Objective-C 语言编写"类"(class)的标准方式为:以类名做文件名,分别创建两个文件,头文件后缀用.h,实现文件后缀用.m.创建好一个类之后,其代码看上去如下所示: // EOCPerson.h #import <Foundation/Foundation.h>

cctype头文件中的一些内容

1. string 标准库 1.1初始化 string s1; 默认构造函数s1为空 string s2(s1); 将s2初始化为s1的一个副本 string s3("value"); 将s3初始化为一个字符串字面值副本 string s4(n,'c'); 将s4初始化为字符'c'的n个副本 string对象的赋值:赋值所做的工作:必须先将s1所占的内存释放掉,然后在分配足够的内存,最后将新字符串赋值到s1中: string对象和字符串字面值的连接:+操作符的左右操作数必须至少一个是s

[C++]关于头文件中的防卫式声明(#ifndef...#pragma once)

大家知道,我们写.h文件时,通常会加上防卫式声明,有以下两种方式: 1. 宏定义 #ifndef _FILENAME_ #define _FILENAME_ //... #endif 2. 编译器指令 #pragma once 但是,为什么头文件中需要添加这种防卫式声明呢?如果没有这样的声明,会出现怎样的问题.这里,先看一个例子. -- "Car.h",代码如下(并没有添加防卫式声明): // Car.h class Car { // ... }; -- "Person.h&

第2条:在类的头文件中尽量少引入其他头文件

@class (向前声明) #import 注意:如果在各自头文件中引入对方的头文件,则会导致“循环引用 ”. 虽然#import(而非#inculde指令)不会导致死循环,但却意味着两个类里有一个无法被正确编译.

OC高效率52:(二)类的头文件中尽量少引用其他头文件

// //  EOCPerson.h //  OC高效率52:类的头文件中尽量少引用其他头文件 // //  Created by Zoujie on 15/10/8. //  Copyright ? 2015年 Zoujie. All rights reserved. // #import <Foundation/Foundation.h> //#import "EOCEmployer.h" @class EOCEmployer;//向前申明该类,将引入头文件的时机尽量延

头文件中不可以放变量的定义

注意头文件中不可以放变量的定义!!!一般情况下头文件中只放变量的声明,因为头文件 要被其他文件包含(即#include),如果把定义放到头文件的话,就不能避免多次定义变量, C++不允许多次定义变量,一个程序中对指定变量的定义只有一次,声明可以无数次. 不过有三个例外,一下三中实体的定义也可放到头文件中 1.值在编译时就已知的const 变量的定义可以放到头文件中 如:const int num(10); 2.类的定义可以放到头文件中 3.inline 函数 4.C++11的新特性 conste

浅谈c/c++头文件中#ifndef/#define/#endif的用法

想必很多人都看过“头文件中用到的 #ifndef/#define/#endif 来防止该头文件被重复引用”.但是是否能理解“被重复引用”是什么意思?头文件被重复引用了,会产生什么后果?是不是所有的头文件中都要加入#ifndef/#define/#endif 这些代码? 1. 其实“被重复引用”是指一个头文件在同一个cpp文件中被include了多次,这种错误常常是由于include嵌套造成的.如:存在a.h文件#include "c.h"而此时b.cpp文件导入了#include &q

关于在头文件中定义变量的问题

如果在一个头文件中定义了一个变量 A.h: int i; 在A.cpp,B.cpp...文件中包含了这个头文件,编译时就会产生重复定义的错误.问题所在是因为int i;这句代码是定义了一个i变量,包含一次头文件就定义了一次i,包含多次肯定引起错误.如果改成extern int i;这句代码就变成了一个声明了.并不会定义i这个变量.不过在多个cpp文件里初始化一样会出现错误.只能在一个cpp文件中进行初始化.