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(手势的速度)

  1. 关于-ObjC / -all_load / -force_load的问题
    某些框架需要在Xcode的buildSetting的Other Linker Flags中添加-ObjC,但是一旦添加-ObjC,另外一些框架又因为重复引用问题导致编译报错(具体原因其他博客已经有讲明),此时就需要用-force_load指定哪些框架需要链接,设置方法为
D1006C75-7CAA-41CC-B3B8-D693C41380E6.png
#注意:如果是 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!)
        }

不定期更新

上一篇下一篇

猜你喜欢

热点阅读