iOS的一些小技巧
2016-06-23 本文已影响88人
saiGo
1.如何打开真机的沙盒文件?
首先将项目的info.plist文件添加一项"Application supports iTunes file sharing" 设置为BOOL "YES",然后就可以使用pp助手查看并打开这个app的沙盒文件了。
2.如何播放iOS系统自带的音频?
导入AudioToolbox,在需要播放提示音的地方写上
AudioServicesPlaySystemSound(1307) // 括号中的参数为系统声音的id
AudioServicesPlayAlertSound(1307) //使用这个方法播放如果手机是静音状态则会换成震动
iOS音频ID对照表 http://www.cocoachina.com/bbs/read.php?tid=134344
3.UICollectionView的复用问题导致UI混乱如何处理?
重写UICollectionViewCell的 prepareForReuse
方法(PS: 记得调用super的prepareForReuse),在该方法中对cell进行修改覆盖系统的重用
4.如何解决UIPangesture手势滑动边界判断问题(滑动过快导致判断失效)?
判断的时候用 velocityInView
(手势的速度)
- 关于-ObjC / -all_load / -force_load的问题
某些框架需要在Xcode的buildSetting的Other Linker Flags中添加-ObjC,但是一旦添加-ObjC,另外一些框架又因为重复引用问题导致编译报错(具体原因其他博客已经有讲明),此时就需要用-force_load指定哪些框架需要链接,设置方法为
#注意:如果是 xxx.framework的动态库,路径最后为 xxx.framework/xxx
6.改变状态栏的颜色
在plist文件里添加 View controller-based status bar appearance一行设置为Bool值NO,这样代码设置状态栏的颜色才会有效。
7.swift3.0 String转utf8编码
extension String {
func utf8encodedString() ->String {
var arr = [UInt8]()
arr += self.utf8
return String(bytes: arr,encoding: String.Encoding.utf8)!
}
}
8.导航栏全透明设置
self.navigationController?.navigationBar.translucent = true
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default) // 设置导航栏背景图片
self.navigationController?.navigationBar.shadowImage = UIImage()// 设置导航栏阴影图片
9.swift3.0重写setFrame
//重写frame
override var frame:CGRect{
didSet {
var newFrame = frame
newFrame.origin.x += 10/2
newFrame.size.width -= 10
newFrame.origin.y += 10
newFrame.size.height -= 10
super.frame = newFrame
}
}
10 . swift使用KVO需要在监听的属性前面加上关键字dynamic,让其动态化
11 . 取消按钮高亮状态
OC的写法 :
- (void)setHighlighted:(BOOL)highlighted {
}
swift的写法
override var highlighted: Bool {
set{
}
get {
return false
}
}
12.打开wifi设置界面(iOS10以上也可)
let url = URL(string: "App-Prefs:root=WIFI")
if UIApplication.shared.canOpenURL(url!){
UIApplication.shared.openURL(url!)
}
不定期更新