声明之前加上static,就是静态变量。全局变量和静态全局变量都是静态存储的;在存储上无区别。区别在于他们的作用域;全局变量的作用域是整个源程序,当源程序有多个源文件组成时,全局变量在各个源程序文件都是有效的;而静态全局变量怎被限制了作用域,只在定义该变量的源文件内有用在同一程序的其他源文件不能使用! 还有静态全局变量只初始化一次,防止在其他源文件调用!而全局变量可以在其他源文件初始化!!
demo呈现:
在一个for循环中实现动态排版效果:
- (void)viewDidLoad
{
[super viewDidLoad];
static int _height = 0;
for (int j = 0; j<5; j++) {
UILabel *lab = [[UILabel alloc]init];
lab.textAlignment = UITextAlignmentLeft;
lab.lineBreakMode = UILineBreakModeWordWrap;
lab.numberOfLines = 0;
lab.font = [UIFont systemFontOfSize:13.0f];
lab.backgroundColor = [UIColor clearColor];
NSString * _connet = [NSString stringWithFormat:@"我的祖国我的祖国我的祖国我的祖国我的祖国我的祖国我的祖国我的祖国"];//_connet的内容可以是动态内容
[lab setText:_connet];
CGSize constraint = CGSizeMake(100, 2000);//label内容设置大小
CGSize size = [_connet sizeWithFont:[UIFont systemFontOfSize:13.0f]constrainedToSize:constraint1 lineBreakMode:UILineBreakModeWordWrap];
lab.frame = CGRectMake(100, _height+50, 100, size.height);
_height = lab.frame.origin.y+lab.frame.size.height-50;//需要减去50,避免重复增加
[self.view addSubview:lab];
[lab release];
}
}
这是我在项目中遇到的一个知识点,分享给大家。