总结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];

【3】一个viewController只能弹出一个presentView,所以如果同一个viewcontroller,之前已经有view通过present加在当前viewcontroller上了,那么再弹出其他的就无效了。

【4】在xib或storyboard搭建页面时,如果底层是个scrollView,想要scrollView的内容高度随着tableView或collectionView的高度而改变,可以在scrollView上加一个contentview,将scrollView的所有子view加入到该contentview上。

上一篇下一篇

猜你喜欢

热点阅读