Light's Blog

The best or nothing.

iOS知识小集-171127

| Comments

ContentInset

内容偏移,可用于下拉刷新调整界面位置。

嵌套UINavigationController的UIViewController设置preferredStatusBarStyle无效

如果UIViewControllerUINavigationController,则会先调UINavigationControllerchildViewControllerForStatusBarStyle方法,该方法默认返回nil,所以子UIViewController设置的preferredStatusBarStyle无效。
解决办法,继承UINavigationController,并重写childViewControllerForStatusBarStyle方法:

1
2
3
- (UIViewController *)childViewControllerForStatusBarStyle{
    return self.topViewController;
}

iOS知识小集-171120

| Comments

iOS 10.3之后删除线失效解决办法

iOS 10.3之前写法:

1
2
3
4
[attr addAttributes:@{
    NSStrikethroughStyleAttributeName: @(NSUnderlineStyleSingle)
  }
              range:NSMakeRange(0, string.length)];

iOS 10.3之后写法:

1
2
3
4
5
[attr addAttributes:@{
    NSStrikethroughStyleAttributeName: @(NSUnderlineStyleSingle),
    NSBaselineOffsetAttributeName: @(NSUnderlineStyleNone)
  }
              range:NSMakeRange(0, string.length)];

iOS知识小集-171113

| Comments

include vs. import vs. class

include

C语言中引用头文件的语法,无法防止重复引用头文件。

import

OC中引用头文件的语法,可以防止重复引用头文件,无法防止循环引用头文件。

class

使用@class告知编译器有这样一个类,书写代码时不要报错,真正调用该类的方法时,再#import该类。 可以防止循环引用头文件。

一般来讲,头文件中使用@class引用其他类,在源文件中#import该类。

iOS知识小集-171106

| Comments

UIViewController modalPresentationStyle

当present controller时,可以设置这个属性来控制present时的效果,可用于透明显示被遮盖的conroller,此情况下被遮盖的conroller不会调用viewDidDisappear。

iOS知识小集-171023

| Comments

UITableView AccessoryView TintColor

通过设置Cell的TintColor来设置AccessoryView的tintColor。

Git Rebase

git rebase会删除merge commit
进行merge操作后不要向其amend代码。

iOS知识小集-171016

| Comments

Clear iOS DeviceSupport to free disk storage

真机调试时,不同系统的手机会生成不同的Device Support文件,每个大概3GB左右,占用大量磁盘空间。删除不需要的Device Support文件,可以释放大量磁盘空间。 iOS DeviceSupport 目录路径[User]/Library/Developer/Xcode/iOS DeviceSupport

Compute CKComponent size

获取component的size。

1
2
3
4
5
  #import <ComponentKit/CKComponentSubclass.h>

  - (CGSize)sizeOfComponent:(CKComponent*)component{
    return [component computeLayoutThatFits: CKSizeRange()].size;
  }

iOS知识小集-171009

| Comments

NSInteger to NSData

1
2
3
  -(NSData*)dataWithInteger:(NSInteger)integer{
    return [NSData dataWithBytes:&integer length:sizeof(integer)];
  }

UICollectionView contentInset

设置内容距离上下左右的间距。