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

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

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

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

  1. class CoreView: UIView {
  2. //MARK:
  3. //MARK: properties
  4. @IBOutlet weak var makefriendsBtn: UIButton!
  5. @IBOutlet weak var networkBtn: UIButton!
  6. @IBOutlet weak var everyoneBtn: UIButton!
  7. //MARK:
  8. //MARK: constraints
  9. @IBOutlet weak var makefriendsBtnWidth: NSLayoutConstraint!
  10. @IBOutlet weak var networkBtnWidth: NSLayoutConstraint!
  11. @IBOutlet weak var everyoneBtnWidth: NSLayoutConstraint!
  12. //MARK:
  13. //MARK: functions
  14. required init(coder aDecoder: NSCoder) {
  15. super.init(coder: aDecoder)
  16. }
  17. // Only override drawRect: if you perform custom drawing.
  18. // An empty implementation adversely affects performance during animation.
  19. override func drawRect(rect: CGRect) {
  20. makeupUI()
  21. }
  22. func makeupUI() {
  23. self.layer.masksToBounds = true
  24. self.layer.cornerRadius = 3
  25. makefriendsBtn.layer.borderWidth = 1
  26. makefriendsBtn.layer.cornerRadius = 3
  27. makefriendsBtn.layer.borderColor = UIColor(red: 107/256, green: 167/256, blue: 249/256, alpha: 1).CGColor
  28. makefriendsBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Selected)
  29. makefriendsBtn.addTarget(self, action: "buttonSelected:", forControlEvents: UIControlEvents.TouchUpInside)
  30. networkBtn.layer.borderWidth = 1
  31. networkBtn.layer.cornerRadius = 3
  32. networkBtn.layer.borderColor = UIColor(red: 107/256, green: 167/256, blue: 249/256, alpha: 1).CGColor
  33. networkBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Selected)
  34. networkBtn.addTarget(self, action: "buttonSelected:", forControlEvents: UIControlEvents.TouchUpInside)
  35. everyoneBtn.layer.borderWidth = 1
  36. everyoneBtn.layer.cornerRadius = 0
  37. everyoneBtn.layer.borderColor = UIColor(red: 107/256, green: 167/256, blue: 249/256, alpha: 1).CGColor
  38. everyoneBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Selected)
  39. everyoneBtn.addTarget(self, action: "buttonSelected:", forControlEvents: UIControlEvents.TouchUpInside)
  40. makefriendsBtnWidth.constant = (self.frame.width - 32 - 29) / 3 + 10
  41. networkBtnWidth.constant = (self.frame.width - 32 - 29) / 3 + 2
  42. everyoneBtnWidth.constant = (self.frame.width - 32 - 29) / 3 - 2
  43. }
  44. func buttonSelected(button: UIButton) {
  45. button.selected = !button.selected
  46. if button.selected == true {
  47. button.backgroundColor = UIColor(red: 107/256, green: 167/256, blue: 249/256, alpha: 1)
  48. } else {
  49. button.backgroundColor = UIColor.whiteColor()
  50. }
  51. }
  52. }

下面就可以在ViewController.swift中调用了:

    1. var myView = NSBundle.mainBundle().loadNibNamed("DemoView", owner: nil, options: nil).first as? DemoView
    2. myView?.frame = CGRect(x: 0, y: 0, width: self.view.frame.width-50, height: self.view.frame.height-140)
    3. myView?.center = self.view.center
    4. if myView != nil {
    5. self.view.addSubview(myView!)
    6. }

iOS swift使用xib绘制UIView的更多相关文章

  1. swift之xib关联UIView

    有点坑爹,设置file owner 不行,搞了一早上,来说下怎么关联吧 自定义UIView要重写 required init(coder aDecoder: NSCoder) { super.init ...

  2. iOS Swift 模块练习/swift基础学习

    SWIFT项目练习     SWIFT项目练习2 iOS Swift基础知识代码 推荐:Swift学习使用知识代码软件 0.swift中的宏定义(使用方法代替宏) 一.视图  +控件 1.UIImag ...

  3. ios swift 实现饼状图进度条,swift环形进度条

    ios swift 实现饼状图进度条 // // ProgressControl.swift // L02MyProgressControl // // Created by plter on 7/2 ...

  4. 【iOS系列】-xib封装使用

    [iOS系列]-xib封装使用 Xib文件可以用来描述某一块局部的UI界面 Xib文件的加载 修改xib文件的大小size(Freeform) 第一: NSArray *objs = [[NSBund ...

  5. Swift之xib模块化设计

    一.解决问题 Xib/Storybarod可以方便.可视化的设置约束,在开发中也越来越重要.由于Xib不能组件化,使得封装.重用都变得不可行.本文将介绍一种解决方案,来实现Xib组件化. 二.模型块原 ...

  6. iOS swift的xcworkspace多项目管理(架构思想)

    iOS  swift的xcworkspace多项目管理(架构思想) 技术说明: 今天在这里分享 swift下的 xcworkspace多项目管理(架构思想),能为我们在开发中带来哪些便捷?能为我们对整 ...

  7. Building gRPC Client iOS Swift Note Taking App

    gRPC is an universal remote procedure call framework developed by Google that has been gaining inter ...

  8. iOS Swift WisdomScanKit图片浏览器功能SDK

    iOS Swift WisdomScanKit图片浏览器功能SDK使用 一:简介      WisdomScanKit 由 Swift4.2版编写,完全兼容OC项目调用. WisdomScanKit的 ...

  9. iOS Swift WisdomScanKit二维码扫码SDK,自定义全屏拍照SDK,系统相册图片浏览,编辑SDK

    iOS Swift WisdomScanKit 是一款强大的集二维码扫码,自定义全屏拍照,系统相册图片编辑多选和系统相册图片浏览功能于一身的 Framework SDK [1]前言:    今天给大家 ...

随机推荐

  1. iOS - instancetype

    OC是一门正在迅速发展的语言,ARC,object literals ,subscripting ,blocks,Auto Synthesis,让我们看到它惊人的改变.instancetype是cla ...

  2. asp.net MVC FileResult在IE下异常的解决办法

    var encoding = System.Text.Encoding.UTF8; Response.Charset = encoding.WebName; Response.HeaderEncodi ...

  3. 反编译Android APK及防止APK程序被反编译

    怎么逆向工程对Android Apk 进行反编译 google Android开发是开源的,开发过程中有些时候会遇到一些功能,自己不知道该怎么做,然而别的软件里面已经有了,这个时候可以采用反编译的方式 ...

  4. 一周一话题之一(EF-CodeFirst、MEF、T4框架搭建学习)

    本话题是根据郭明峰博客<MVC实用架构系列>的搭建学习总结. -->目录导航 一.数据仓储访问的构建     1.UnitOfWork的构建     2.Repository的构建 ...

  5. android java 堆栈的实现

    android和java不提供堆栈的实现,只提供了list,vector,deque得存储结构,对于以前做面向过程语言的程序员来说,总觉得缺少了些什么: Stack.java文件: public cl ...

  6. Android之读取 AndroidManifest.xml 中的数据

    转:http://www.2cto.com/kf/201208/151123.html 下来示例如何读取这些数据. 1 版本信息.应用名称 2 Appliction 的Meta-data 3 Acti ...

  7. WCF Concurrency (Single, Multiple, and Reentrant) and Throttling

    http://www.codeproject.com/Articles/89858/WCF-Concurrency-Single-Multiple-and-Reentrant-and Introduc ...

  8. Spark快速数据处理

    原书名:Fast Data Processing with Spark 原出版社:Packt Publishing 作者: (美)Holden Karau 丛书名:大数据技术丛书 出版社:机械工业出版 ...

  9. statspack系列7

    原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-7/ 作者:Jonathan Lewis 这是一段Oracle ...

  10. win8 mysqlzip install

    1. 下载MySQL Community Server 5.6.142. 解压MySQL压缩包 将以下载的MySQL压缩包解压到自定义目录下.3. 添加环境变量 变量名:MYSQL_HOME 变量值: ...