ios swift 左侧抽屉简单实现
2017-02-09 11:33
309 查看
var leftView: UIView? var minX: CGFloat? var midX: CGFloat? var maxX:CGFloat? /* 抽屉 */ func drawerView(){ self.view.isMultipleTouchEnabled = true self.view.isUserInteractionEnabled = true self.view.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.pan(_:)))) let make = CGRect(x: -UIScreen.main.bounds.width*3/5, y: 0, width: UIScreen.main.bounds.width*3/5, height: UIScreen.main.bounds.height) leftView = UIView(frame: make) leftView?.backgroundColor = UIColor.brown self.view.addSubview(leftView!) minX = leftView?.center.x maxX = minX! + make.width midX = (maxX!-minX!)/2 + minX! } func pan(_ pan: UIPanGestureRecognizer){ switch pan.state{ case UIGestureRecognizerState.began: print("----began----") case UIGestureRecognizerState.changed: print("----Changed----") let tran = pan.translation(in: self.view) let newC = (leftView?.center.x)! + tran.x if newC >= minX && newC <= maxX{ leftView?.center = CGPoint(x: newC, y: (leftView?.center.y)!) } pan.setTranslation(CGPoint.zero, in: self.view) case UIGestureRecognizerState.ended: UIView.animate(withDuration: 0.2, animations: { () -> Void in if self.leftView!.center.x > self.minX && self.leftView!.center.x < self.midX{ self.leftView!.center = CGPoint(x: self.minX!, y: self.leftView!.center.y) }else if self.leftView!.center.x >= self.midX && self.leftView!.center.x < self.maxX{ self.leftView!.center = CGPoint(x: self.maxX!, y: self.leftView!.center.y) } }, completion: { (finish) -> Void in }) default: break } }
相关文章推荐
- iOS关闭键盘简单实现(objc/swift)
- iOS中 简单抽屉效果(MMDrawerController)的实现
- IOS SWIFT UITableView 实现简单微博列表
- iOS如何用100行代码实现简单的抽屉效果
- iOS GCD 同步异步的区别 Swift 代码的简单实现
- iOS中 超简单抽屉效果(MMDrawerController)的实现
- [iOS] App引导页的简单实现 (Swift 2)
- [iOS/Swift]简单实现跟系统一样的毛玻璃效果的View,可在上面加控件,可移动
- iOS中 超简单抽屉效果(MMDrawerController)的实现
- IOS UISearchController的简单开发实现(swift版)
- iOS-简单抽屉效果实现
- iOS瀑布流的简单实现(Swift)
- IOS 实现3D Touch在tableView的简单应用(swift版)
- iOS实现简单的抽屉效果
- [iOS]简单的APP引导页的实现 (Swift)
- iOS开发——swift实现简单的全局键盘管理器
- iOS Swift 简单实现Loading动画
- 论坛源码推荐(7月9日):用Swift实现的计时器 最简单的方式展示iOS App更新
- iOS 简单实现抽屉效果