在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新。

UITableView的Group样式下顶部空白处理

 

 
 
1
2
3
//分组列表头部空白处理
;
;

 

UITableView的plain样式下,取消区头停滞效果

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
scrollView
{
;
)
{
;
}
)
{
;
}
}

那个,其实,还是用Group样式吧哈哈。

获取某个view所在的控制器

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
viewController
{
  
;
)
{
)
{
      
    
    
  
}
;
}

 

两种方法删除NSUserDefaults所有记录

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//方法一
;
;
 
 
//方法二
resetDefaults
{
;
;
)
{
;
}
;
}

 

打印系统所有已注册的字体名称

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
#pragma mark - 打印系统所有已注册的字体名称
)
{
)
{
              
      
)
{
;
}
}
}

 

获取图片某一点的颜色

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
image
{
 
;
;
;
 
{
/* error */
}
;
;
;
 
;
;
{
;
;
;
;
;
:
;
}
;
{
;
}
;
}

 

字符串反转

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
第一种:
str
    
;
)
{
      
    
    
;
}
 
//第二种:
str
    
    
{
                        
    
;
}

 

禁止锁屏,

默认情况下,当设备一段时间没有触控动作时,iOS会锁住屏幕。但有一些应用是不需要锁屏的,比如视频播放器。

 
 
1
2
3
;
;

 

模态推出透明界面

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
;
;
 
)
{
;
}
else
{
;
}
 
;

 

Xcode调试不显示内存占用

 

 
 
1
  取消选中

 

显示隐藏文件

 

 
 
1
2
3
4
5
6
7
//显示
true
Finder
 
//隐藏
false
Finder

 

字符串按多个符号分割
iOS开发小技巧总结
iOS跳转到App Store下载应用评分

 

 
 
1
;

 

iOS 获取汉字的拼音

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
chinese
    
//将NSString装换成NSMutableString
    
//将汉字转换为拼音(带音标)    
    
    
//去掉拼音的音标    
    
    
//返回最近结果    
;
}

 

手动更改iOS状态栏的颜色

 

 
 
1
2
3
4
5
6
7
8
9
color
{
;
 
)
{
    
}
}

 

判断当前ViewController是push还是present的方式显示的

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
;
 
)
{
)
{
//push方式
;
}
}
else
{
//present方式
;
}

 

获取实际使用的LaunchImage图片

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
getLaunchImageName
{
;
// 竖屏    
  
    
;
)
{
;
)
{
        
    
    
;
}

 

iOS在当前屏幕获取第一响应

 

 
 
1
2
;
;

 

判断对象是否遵循了某协议

 

 
 
1
2
3
4
)
{
;
}

 

判断view是不是指定视图的子视图

 

 
 
1
;

 

NSArray 快速求总和 最大值 最小值 和 平均值

 

 
 
1
2
3
4
5
6
;
;
;
;
;
;

 

修改UITextField中Placeholder的文字颜色

 

 
 
1
;

 

关于NSDateFormatter的格式

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
AD公元
2位
完整年
12
Jan
Janualy
02
2
Sun
Sunday
PM
23
11
2位
2位
2位
2位
毫秒

 

获取一个类的所有子类

 

 
 
1
2
3
4
5
6
7
allSubclasses
{
;
;
;
;
ci

 

监测IOS设备是否设置了代理,需要CFNetwork.framework

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
;
;
;
 
;
;
;
;
 
)
{
;
}
else
{
;
}

 

阿拉伯数字转中文格式

 

 
 
1
2
3
4
5
6
7
8
9
10
arebic
  
;
;
;
;
;
 
;
i

 

Base64编码与NSString对象或NSData对象的转换

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Create NSData object
;
 
// Get NSString from NSData object in Base64
;
 
// Print the Base64 encoded string
;
 
// Let's go the other way...
 
// NSData from the Base64 encoded str
]
;
 
// Decoded NSString from the NSData
]
;
;

 

取消UICollectionView的隐式动画

UICollectionView在reloadItems的时候,默认会附加一个隐式的fade动画,有时候很讨厌,尤其是当你的cell是复合cell的情况下(比如cell使用到了UIStackView)。
下面几种方法都可以帮你去除这些动画

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//方法一
{
;
;
 
//方法二
{
{
;
;
;
 
//方法三
;
{
;
{
;
;

 

让Xcode的控制台支持LLDB类型的打印

 

 
 
1
2
3
4
:
lldbinit
lldbinit
lldbinit

 

CocoaPods pod install/pod update更新慢的问题

 

 
 
1
2
3
update
update
spec仓库,加一个参数可以省略这一步,然后速度就会提升不少

 

UIImage 占用内存大小

 

 
 
1
2
;
;

 

GCD timer定时器

 

 
 
1
2
3
4
5
6
7
8
9
10
11
;
;
//每秒执行
{
;
{
 
;
;
;

 

图片上绘制文字 写一个UIImage的category

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
fontSize
{
//画布大小
;
//创建一个基于位图的上下文
//opaque:NO  scale:0.0
 
;
 
//文字居中显示在画布上
;
;
//文字居中
 
//计算文字所占的size,文字居中显示在画布上
NSStringDrawingUsesLineFragmentOrigin
;
;
;
 
;
//绘制文字
;
 
//返回绘制的新图形
;
;
;
}

 

查找一个视图的所有子视图

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
view
{
;
)
{
;
)
{
;
}
}
;
}

 

计算文件大小

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//文件大小
path
{
;
 
)
{
;
;
}
 
;
}
 
//文件夹大小
path
{
;
 
;
 
)
{
;
)
{
;
)
{
;
;
}
}
}
 
;
}

 

UIView设置部分圆角

你是不是也遇到过这样的问题,一个button或者label,只要右边的两个角圆角,或者只要一个圆角。该怎么办呢。这就需要图层蒙版来帮助我们了

 
 
1
2
3
4
5
6
7
8
;
//圆角尺寸
//这只圆角位置
;
//创建shapelayer
;
//设置路径
;

 

取上整与取下整

 

 
 
1
2
3
4
5
6
7
8
9
10
例如:
3
9
 
ceil函数,即上取整函数。
 
ceil函数的作用是求不小于给定实数的最小整数。
2.00
 
double型

 

计算字符串字符长度,一个汉字算两个字符

 

 
 
1
2
3
4
5
6
//方法一:
strtemp
{
;
;
i

 

给UIView设置图片

 

 
 
1
2
3
;
;
;

 

防止scrollView手势覆盖侧滑手势

 

 
 
1
;

 

去掉导航栏返回的back标题

 

 
 
1
;

 

字符串中是否含有中文

 

 
 
1
2
3
string
{
i

 

dispatch_group的使用

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
;
;
{
;
;
;
 
;
 
{
;
;
;
 
{
;
;

 

UITextField每四位加一个空格,实现代理

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
string
{
// 四位加一个空格
)
{
// 删除字符
)
{
;
}
;
}
else
{
)
{
;
}
}
;
}

 

获取私有属性和成员变量 #import

 

 
 
1
2
3
4
5
6
7
//获取私有属性 比如设置UIDatePicker的字体颜色
setTextColor
{
//获取所有的属性,去查看有没有对应的属性
;
;
i

 

 
 
1
2
3
4
//获得成员变量 比如修改UIAlertAction的按钮字体颜色
;
;
i

 

获取手机安装的应用

 

 
 
1
2
3
4
5
6
7
8
9
10
;
;
;
)
{
;
;
;
}

 

判断两个日期是否在同一周 写在NSDate的category里面

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
date
{
//日期间隔大于七天之间返回NO
)
{
;
}
 
;
//设置每周第一天从周一开始
//计算两个日期分别为这年第几周
;
;
 
//相等就在同一周,不相等就不在同一周
;
}

 

应用内打开系统设置界面

 

 
 
1
2
3
//iOS8之后
;
//如果App没有添加权限,显示的是设定界面。如果App有添加权限(例如通知),显示的是App的设定界面。

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//iOS8之前
//先添加一个url type如下图,在代码中调用如下代码,即可跳转到设置页面的对应项
;
 
可选值如下:
About
ACCESSIBILITY
AIRPLANE_MODE
AUTOLOCK
Brightness
Bluetooth
DATE_AND_TIME
FACETIME
General
Keyboard
CASTLE
STORAGE_AND_BACKUP
INTERNATIONAL
LOCATION_SERVICES
MUSIC
EQ
VolumeLimit
Network
NIKE_PLUS_IPOD
NOTES
_ID
Phone
Photos
ManagedConfigurationList
Reset
Safari
Assistant
Sounds
SOFTWARE_UPDATE_LINK
STORE
TWITTER
USAGE
VPN
Wallpaper
WIFI

 

iOS开发小技巧总结
屏蔽触发事件,2秒后取消屏蔽

 

 
 
1
2
3
4
;
{
]
;

 

动画暂停再开始

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
layer
{
;
;
;
}
 
layer
{
;
;
;
;
;
;
}

 

fillRule原理
iOS开发小技巧总结
iOS中数字的格式化

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//通过NSNumberFormatter,同样可以设置NSNumber输出的格式。例如如下代码:
;
;
;
;
//输出结果为:[1223:403] Formatted number string:123,456,789
 
//其中NSNumberFormatter类有个属性numberStyle,它是一个枚举型,设置不同的值可以输出不同的数字格式。该枚举包括:
{
,
,
,
,
,
kCFNumberFormatterSpellOutStyle
;
//各个枚举对应输出数字格式的效果如下:其中第三项和最后一项的输出会根据系统设置的语言区域的不同而不同。
123456789
789
789.00
%
1.23456789E8
:一亿二千三百四十五万六千七百八十九

 

如何获取WebView所有的图片地址,

在网页加载完成时,通过js获取图片和添加点击的识别方式

 
 
1
2
3
4
5
6
7
8
9
//UIWebView
webView
{
//这里是js,主要目的实现对url的获取
=
\
\
\
i

 

 
 
1
2
3
4
5
6
7
8
//WKWebView
navigation
{
=
\
\
\
i

 

获取到webview的高度

 

 
 
1
;

 

navigationBar变为纯透明

 

 
 
1
2
3
4
5
6
7
8
//第一种方法
//导航栏纯透明
;
//去掉导航栏底部的黑线
;
 
//第二种方法
;

 

tabBar同理

 

 
 
1
2
;
;

 

navigationBar根据滑动距离的渐变色实现

 

 
 
1
2
3
4
5
6
7
//第一种
scrollView
{
//滑动多少就完全显示
;
;
}

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//第二种
scrollView
{
;
;
 
;
;
}
 
//生成一张纯色的图片
color
{
;
;
;
;
;
;
;
 
;
}

 

iOS 开发中一些相关的路径

 

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
:
SDKs
 
:
DocSets
 
:
ins
 
:
/
CodeSnippets文件夹。
 
描述文件路径
Profiles

 

navigationItem的BarButtonItem如何紧靠屏幕右边界或者左边界?

一般情况下,右边的item会和屏幕右侧保持一段距离:

iOS开发小技巧总结

下面是通过添加一个负值宽度的固定间距的item来解决,也可以改变宽度实现不同的间隔:

 
 
1
2
3
4
5
6
7
8
;
//宽度为负数的固定间距的系统item
;
;
 
;
;
;

 

iOS开发小技巧总结
NSString进行URL编码和解码

 

 
 
1
2
3
4
5
6
7
;
 
//编码 打印:http://abc.com?aaa=%E4%BD%A0%E5%A5%BD&bbb=tttee
;
 
//解码 打印:http://abc.com?aaa=你好&bbb=tttee
;

 

UIWebView设置User-Agent。

 

 
 
1
2
3
4
5
//设置
;
;
//获取
;

 

获取硬盘总容量与可用容量:

 

 
 
1
2
3
4
5
;
;
 
;
;

 

获取UIColor的RGBA值

 

 
 
1
2
3
4
5
6
;
;
;
;
;
;

 

修改textField的placeholder的字体颜色、大小

 

 
 
1
2
;
;

 

AFN移除JSON中的NSNull

 

 
 
1
2
;
;

 

ceil()和floor()

ceil()功 能:返回大于或者等于指定表达式的最小整数
floor()功 能:返回小于或者等于指定表达式的最大整数

UIWebView里面的图片自适应屏幕

在webView加载完的代理方法里面这样写:

 
 
 
 
 
 
Objective-C
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
webView
{
    var imgs = document.getElementsByTagName('img'); \
    for (var i = 0; i < imgs.length; ++i) { \
    var img = imgs[i]; \
    img.style.maxWidth = %f; \
    } \
;
 
;
 
;
;
}

持续更新中……。

相关文章: