一句话笔记,某段时间内遇到或看到的某个可记录的点。 2017-07-20
- Xcode 自定义环境变量 Environment Variables 进行判断
- UICollectionView 的 contentSize 并不可以直接设置
一、Xcode 自定义环境变量 Environment Variables 进行判断
Xcode可以在不同环境下自定义环境变量 Environment Variables,通过在运行环境Run中自定义变量来进行我们想要的判断,这样有时就可以操作一些自身想做的事情啦。
if ([[NSProcessInfo processInfo].environment[@"TEST_SELECT"] boolValue]) {
// DO SomeThing
}
if (getenv("TEST_SELECT")) {
// DO SomeThing
}
上述两者都可以判断,前者([[NSProcessInfo processInfo].environment[@"TEST_SELECT"] boolValue]
)可以判断到具体的值,后者(getenv("TEST_SELECT")
)只有 value 有就成立,当然是勾选的情况下咯,而我们不需要其进行判断时直接不勾选就好啦。
PS : NSProcessInfo 是获取进程信息,里面有很多方便的属性,便于我们查看和判断。
二、UICollectionView 的 contentSize 并不可以直接设置
当我们有时想直接设置 UICollectionView 中的 contentSize 时是发现并不可以的:
- (void)viewDidLoad {
[super viewDidLoad];
self.collectionView.contentSize = CGSizeMake(self.view.frame.size.width, 1000);
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"size == %@",NSStringFromCGSize(self.collectionView.contentSize));
}
这样打印出来还是其自动设置的值,但某些特殊需要的时候我们又要额外设置其 ContentSize 的。
此时可以通过自定义 UICollectionViewFlowLayout 的时候,额外再设置下其 ContentSize 的。
/**
* 自定义Content Size
*/
@property (nonatomic, copy) CGSize(^customContentSize)(CGSize oldSize);
- (CGSize)collectionViewContentSize {
CGSize oldSize = [super collectionViewContentSize];
if (self.customContentSize) {
return self.customContentSize(oldSize);
}
return oldSize;
}