iOS swift使用xib繪製UIView

來源:互聯網
上載者:User

iOS swift使用xib繪製UIView

目標:用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 ----------

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.