本节重点
IBAnimatable使用,IBAnimatable的Bug解决
NavigationBar的隐藏,
改变状态栏文字的颜色,
返回当前对象的对象方法,设置tableView的HeaderView
每一个都是小的知识点。
-----------------------------------------------------------IBAnimatable使用--------------------------------------------------------------------------
首先通过 pod 'IBAnimatable'
pod update (时间多的话,用这条)
pod update --verbose --no-repo-update (时间不多的话,用这条)
然后command + B
这里我们给按钮添加一个圆角
在我们对应的swift文件里面,import IBAnimatable
然后 在我们需要变圆角的按钮里面设置custom class的class 为 AnimatableButton
这里有可能会build failed ,我们只要重启xcode就可以了,也是我遇到的bug
然后我们设置圆角,Corner Radius
-----------------------------------------------------------IBAnimatable使用--------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------
接下来是一个小知识点,NavigationBar的隐藏,你可以直接复制我的代码
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
navigationController?.setNavigationBarHidden(true, animated: false)
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
navigationController?.setNavigationBarHidden(true, animated: false)
}
-------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------
改变状态栏文字的颜色
//改变状态栏文字的颜色
override var preferredStatusBarStyle: UIStatusBarStyle{
return .lightContent
}
-------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------
实现tableView 下拉图片放大的效果,
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
//得到内容向下偏移的y值
let offsetY = scrollView.contentOffset.y
//如果小于0,说明是下拉
if offsetY < 0 {
//这里定死了头部图片的高度 MyHeaderViewHeight
let totalOffset = MyHeaderViewHeight + abs(offsetY)
let f = totalOffset/MyHeaderViewHeight
//这里实现放大效果
headerView.bgImageView.frame = CGRect(x: -screenWidth*(f-1)*0.5, y: offsetY, width: screenWidth * f, height: totalOffset)
}
}
-------------------------------------------------------------------------------------------------------------------------------------
这里我们定义了一个MyHeaderView作为UITableViewController的HeaderView
我们在MyHeaderView定义一个类方法,代码如下
class MyHeaderView:UIView{
class func headerView() -> MyHeaderView {
return Bundle.main.loadNibNamed("\(self)", owner: nil, options: nil)?.last as! MyHeaderView
}
}
然后在UITableViewController的子类里面添加,代码如下
class MineViewController: UITableViewController {
......
override func viewDidLoad() {
super.viewDidLoad()
.....
//设置tableView的HeaderView
tableView.tableHeaderView = headerView
.....
}
//懒加载的方式
fileprivate lazy var headerView: MyHeaderView = {
let headerView = MyHeaderView.headerView()
return headerView
}()
.......
}