目标:用xib绘制一个UIView,在某个ViewController中调用。
三个文件:ViewController.swift DemoView.swift DemoView.xib
首先,可以专心将DemoView.xib画出来,别忘记DemoView.xib中UIView的一处设置
然后,写DemoView.swift文件,代码如下:
class CoreView: UIView { //MARK: //MARK: properties @IBOutlet weak var makefriendsBtn: UIButton! @IBOutlet weak var networkBtn: UIButton! @IBOutlet weak var everyoneBtn: UIButton! //MARK: //MARK: constraints @IBOutlet weak var makefriendsBtnWidth: NSLayoutConstraint! @IBOutlet weak var networkBtnWidth: NSLayoutConstraint! @IBOutlet weak var everyoneBtnWidth: NSLayoutConstraint! //MARK: //MARK: functions required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. override func drawRect(rect: CGRect) { makeupUI() } func makeupUI() { self.layer.masksToBounds = true self.layer.cornerRadius = 3 makefriendsBtn.layer.borderWidth = 1 makefriendsBtn.layer.cornerRadius = 3 makefriendsBtn.layer.borderColor = UIColor(red: 107/256, green: 167/256, blue: 249/256, alpha: 1).CGColor makefriendsBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Selected) makefriendsBtn.addTarget(self, action: "buttonSelected:", forControlEvents: UIControlEvents.TouchUpInside) networkBtn.layer.borderWidth = 1 networkBtn.layer.cornerRadius = 3 networkBtn.layer.borderColor = UIColor(red: 107/256, green: 167/256, blue: 249/256, alpha: 1).CGColor networkBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Selected) networkBtn.addTarget(self, action: "buttonSelected:", forControlEvents: UIControlEvents.TouchUpInside) everyoneBtn.layer.borderWidth = 1 everyoneBtn.layer.cornerRadius = 0 everyoneBtn.layer.borderColor = UIColor(red: 107/256, green: 167/256, blue: 249/256, alpha: 1).CGColor everyoneBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Selected) everyoneBtn.addTarget(self, action: "buttonSelected:", forControlEvents: UIControlEvents.TouchUpInside) makefriendsBtnWidth.constant = (self.frame.width - 32 - 29) / 3 + 10 networkBtnWidth.constant = (self.frame.width - 32 - 29) / 3 + 2 everyoneBtnWidth.constant = (self.frame.width - 32 - 29) / 3 - 2 } func buttonSelected(button: UIButton) { button.selected = !button.selected if button.selected == true { button.backgroundColor = UIColor(red: 107/256, green: 167/256, blue: 249/256, alpha: 1) } else { button.backgroundColor = UIColor.whiteColor() } } }
下面就可以在ViewController.swift中调用了:
var myView = NSBundle.mainBundle().loadNibNamed("DemoView", owner: nil, options: nil).first as? DemoView myView?.frame = CGRect(x: 0, y: 0, width: self.view.frame.width-50, height: self.view.frame.height-140) myView?.center = self.view.center if myView != nil { self.view.addSubview(myView!) }
---------- over ----------
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-12 20:20:37