记录免忘

2018-03-13  本文已影响2人  十月末的故事
  1. NSLog 相关
1. 打印地址
NSString *str = @"abc";
NSLog(@"指针地址:%x, 对象地址:%p", &str, str);

2. 替换系统 NSLog
#if DEBUG
#define NSLog(format, ...) printf("\n[%s] %s [第%d行] %s\n", __TIME__, __FUNCTION__, __LINE__, [[NSString stringWithFormat:format, ## __VA_ARGS__] UTF8String]);
#else
#define NSLog(...) {} 
#endif
其他打印占位符 占位符
  1. Build Phases
1. 设置某个类是否启用 ARC,禁用 ARC 后,被禁用的类将变成 MRC
TARGETS --> Build Phases --> Compile Sources 中找到需要修改的类文件,双击后填写
启用 ARC:-fobjc-arc
禁用 ARC:-fno-objc-arc
  1. 宏判断
1. 判断是模拟器还是真机
#if TARGET_IPHONE_SIMULATOR
    NSLog(@"iphone simulator");
#else TARGET_OS_IPHONE
    NSLog(@"iphone");
#endif

2.  判断是iPhone还是iPad
#define CURRENTDEVICE_IPAD   UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad

3. 设备类型
#if __LP64__
代码只在64位机上运行
#else
代码在32位机上运行
#endif
  1. 判断系统版本
// 判断系统版本是否 11.0
if (@available(iOS 11.0, *))
{
     // your code
}
  1. 消除 pods 所有 warnings

pods -> project -> build settings 中搜 inhibit all warnings,将其值设置为 YES 即可

  1. Xib, Storyboard 和纯代码编写的优缺点:
Xib 和 Storyboard 可以直观的看到页面效果,开发时方便快捷,后期或别人接手时也方便快速了解页面功能,缺点是编译速度慢,版本控制容易冲突且不易解决冲突。
纯代码反之,编译快,控制更灵活,但无法方便的查看页面效果,后期或别人接手时理解困难。
  1. UIView 的 alpha、hidden、clearColor、opaque 效果和区别
1. alpha 是控制透明度,值范围 [0, 1],当 alpha = 0 时,视图及其子视图将完全透明不可见,也不再接受响应,有动画效果
2. hidden 是控制隐藏,hidden = YES 时,效果等同于 alpha = 0,无动画效果
3. clearColor 是透明色,视图设置为 clearColor 时,视图透明不可见,但子视图可见,视图可接受响应
4. opaque 意为不透明,当 opaque = YES 时,GPU 渲染将不考虑颜色叠加,只显示顶层视图的颜色。所以当 opaque = YES 时,最好视图 alpha = 1,若 alpha < 1 时可能会出现异常显示,同样,alpha < 1 时,可将 opaque 设置为 NO。
  1. 状态栏 UIStatusBar 的隐藏和显示
在 ViewController 中如下设置

- (BOOL)prefersStatusBarHidden
{
    return statusBarHidden;
}

- (UIStatusBarAnimation)preferredStatusBarUpdateAnimation
{
    return UIStatusBarAnimationSlide;
}

在需要刷新的时候调用 [self setNeedsStatusBarAppearanceUpdate];

后续继续更新...

上一篇 下一篇

猜你喜欢

热点阅读