开发中的一些注意点

1.当table有需要隐藏cell的需求时,不要设cellHeight=0,而是要控制cell的个数,防止cellHeight=0时,控件也会往上加

2.masonry在做动画之前,要先在动画前给控件设置约束,并调用父视图的layoutifNeeded,在iOS7上,若是调用子视图的layoutifNeeded,动画不会执行

3.查看当前对象的引用计数的两种方法:

NSLog(@"--%@---%ld",[self valueForKey:@"retainCount"],CFGetRetainCount((__bridge CFTreeRef)self));

4.在相对布局中,scrollView及其子类上的控件,不能以scrollView及其子类为参数布局,可以直接使用一个定值,例如make.left.mas_equal(50)。如果出现不能滑动等问题,搜索“scrollView和自动布局”寻找答案。手动设置contentSizes需要在下面这个函数中设置

- (void)viewDidLayoutSubviews {
    //设置scw的contentSize
    [self.scwBG setContentSize:CGSizeMake(0, topVwTags + heightVwTags + 150)];
}

5.任何类型的成员变量在block中使用都可能会引起内存泄露(在开发中遇到过,测试中没测出来),尽量不要用成员变量,而使用属性。

6.iOS8以前和以后,横屏和竖屏的区别在于,下列两个方法获取的长度不同,例如在iOS8以前,横屏和竖屏时,viewH获得的值永远都是横屏时的高,而iOS8以后,横屏时,viewH获得的值是横屏时的高;竖屏时,viewH获得的值是横屏时的宽。

#define viewH CGRectGetHeight([UIScreen mainScreen].bounds)
#define viewW CGRectGetWidth([UIScreen mainScreen].bounds)

7.UICollectionViewFlowLayout的最小行间距minimumLineSpacing和最小列间距minimumInteritemSpacing有默认值为10.0(UICollectionViewFlowLayout.h文件中没有做说明),所以在布局无间距的CollectionView时,记得把这两个属性设为0。

UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
NSLog(@"%f--%f",layout.minimumLineSpacing,layout.minimumInteritemSpacing);
layout.minimumLineSpacing = 0;
layout.minimumInteritemSpacing = 0;

//输出:10.000000--10.000000

8.延迟执行performSelector和取消延迟执行cancelPreviousPerformRequestsWithTarget,需要注意的是参数的一致性,否则取消无法实现

[self performSelector:@selector(action:) withObject:[NSNumber numberWithBool:YES] afterDelay:3.0f];

//1、object参数一致,可以移除
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(action:) object:[NSNumber numberWithBool:YES]];

//2、object参数不一致,无法移除
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(action:) object:[NSNumber numberWithBool:NO]];

[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(action:) object:nil];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值