项目中需要写一个自定义View作为操作栏,并悬浮在UITableViewController底部。
对于这种基础不好的人来说,又到了补课的时间了,那么google+stackoverflow
第一步
建立了一个customView.xib,建立一个类customView.swift
,在xib中链接File's Owner与这个类, 然后在类中初始化nib
override init(frame: CGRect) {
super.init(frame: frame)
loadViewFromNib ()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
loadViewFromNib ()
}
func loadViewFromNib() {
let bundle = NSBundle(forClass: self.dynamicType)
let nib = UINib(nibName: "customView", bundle: bundle)
let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView
view.frame = bounds
view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
self.addSubview(view);
}
j
第二步
接着是需要把它悬浮在UITableViewController的底部,并且一直悬浮在固定位置。
试用了几种方法,都没实现
//位置固定在了tableView上,没有固定在界面上
self.view.addSubview(self.actionButtonBarView)
//好像成功了,但是滑动返回的时候,发现actionButtonBarView没有跟随界面移动
self.view.window!.addSubview(self.actionButtonBarView)
//固定在了底部,但是第二次打开界面是superView = nil,原因不详
self.view.superview!.addSubview(self.actionButtonBarView)
最后看了以前某行代码,发现居然忘记了放在navigationController上
self.navigationController?.view.addSubview(self.actionButtonBarView)
一句话完美实现了这个功能。