IOS swift uses xib to draw a UIView
Objective: To draw a UIView using xib and call it in a ViewController.
Three files: ViewController. swift DemoView. swift DemoView. xib
First, you can focus on DemoView. xib. Do not forget one of the UIView settings in DemoView. xib.
Then, write the DemoView. swift file. The Code is as follows:
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() } } }
The following code can be called in 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 ----------