iOS swift使用xib绘制UIView

热门标签

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

目标:用xib绘制一个UIView,在某个ViewController中调用。

三个文件:ViewController.swift    DemoView.swift     DemoView.xib

首先,可以专心将DemoView.xib画出来,别忘记DemoView.xib中UIView的一处设置

然后,写DemoView.swift文件,代码如下:

class DemoView: 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 ----------

标签:

未经允许不得转载:作者:SheaYang, 转载或复制请以 超链接形式 并注明出处 技术Dog|博客
原文地址:《iOS swift使用xib绘制UIView》 发布于2019-09-24

分享到:
赞(0) 打赏

评论 抢沙发

1 + 2 =


iOS swift使用xib绘制UIView

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.0主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?