总结iOS项目开发中遇到的一些坑
2017-07-18 本文已影响0人
小蜗牛成长记
【1】对于数位比较大的数字,要注意使用longlong来声明,避免CPU分配内存不够出现bug。
本人在时间戳与时间的相互转化的时候遇到此类问题,导致显示出来的时间总是不正确,谨以此提醒自己和广大开发者朋友们。下面列出时间与时间戳之间的相互转化代码:
【2】 对于整体使用xib或storyboard做UI的项目,如果需要使用代码来添加控件,设置控件约束时应该注意,关掉translatesAutoresizingMaskIntoConstraints这个属性,这个属性默认是打开的,打开的情况下该控件不受约束控制。
如下,reusable 是使用xib添加的view,在此reusable视图上使用代码添加一个图片imageView视图。
//显示图片
UIImageView * imageView = [reusable viewWithTag:1001];
if (!imageView) {
imageView = [[UIImageView alloc]init];
imageView.tag = 1001;
imageView.backgroundColor = [UIColor clearColor];
[reusable addSubview:imageView];
}
NSLayoutConstraint * imageLead = [NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:imageView attribute:NSLayoutAttributeLeft multiplier:1 constant:-10];
NSLayoutConstraint *imageCenter = [NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:imageView attribute:NSLayoutAttributeCenterY multiplier:1 constant:0];
[NSLayoutConstraint activateConstraints:@[imageLead,imageCenter]];
imageView.translatesAutoresizingMaskIntoConstraints = NO ; //imageView的这个属性一定要关掉,不然imageView不会显示
NSString * imageName = [self.headers[indexPath.section]objectForKey:@"image"];
imageView.image = [UIImage imageNamed:imageName];
[reusable layoutIfNeeded];