自定义UIView,悬浮在UITableViewController底部的实现

项目中需要写一个自定义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)

一句话完美实现了这个功能。

你可能感兴趣的:(自定义UIView,悬浮在UITableViewController底部的实现)