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

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

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

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

[objc] view plain copy
  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中调用了:

[objc] view plain copy
  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. }

swift使用xib绘制UIView相关推荐

  1. swift iOS8 XIB 问题 ViewController.init() xib

    对于OC 中 ViewController *vc = [[ViewController alloc] init],方法默认会加载一个同名的xib文件当View.但是在swift中  ViewCont ...

  2. 用xib自定义UIView并在代码中使用--iOS

    首先新建一个空的xib文件: 将size改为freedom: 然后在xib中自定义视图(添加自己想要的其它视图): 要写好约束, 创建一个继承uiview的类和他关联,然后就可以调用了. - (voi ...

  3. iOS swift 倒圆角并绘制阴影

    给View倒某几个角为圆角 //倒左右上边两个圆角let bottomPaskPath = UIBezierPath.init(roundedRect: CGRect.init(x: 0, y: 0, ...

  4. Swift 使用xib自定义UITableViewCell

    使用xib自定义tableviewCell看一下效果图 1.自定义列 新建一个xib文件 carTblCell,拖放一个UITableViewCell,再拖放一个图片和一个文本框到tableviewc ...

  5. iosxib 设置图片_iOS使用xib自定义UIView

    一般自定义View代码方式 //1-在初始化的时候添加 子Views - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:f ...

  6. 微信sdk swift版_使用Swift 4的iOS版Google Maps SDK终极指南

    微信sdk swift版 by Dejan Atanasov 通过Dejan Atanasov 使用Swift 4的iOS版Google Maps SDK终极指南 (Your ultimate gui ...

  7. 图片轮播器(swift)

    如何实现一个无限循环,无缝衔接的图片轮播器 自己实现一次以后就不用使用轮播器的框架了 能用代码解决的问题就不在这里瞎BB了  O(∩_∩)O 首先先在Carousel文件件夹创建以下几个文件 Caro ...

  8. xib、stoaryboard详解

    一.xib.sb简介 1.xib执行效率的确没有代码效率高,因为加载要多一步--把xib文件加载到内存中 2.SB还会省去很多页面跳转之间的胶水代码(segue),甚至不用写代码就能实现在各个页面中切 ...

  9. 怎样在swift中创建CocoaPods

    本文由yake_099(博客)翻译自raywenderlich,作者:Joshua Greene 原文:How to Create CocoaPods with Swift 你可能对一些比较著名的开源 ...

最新文章

  1. 【c语言】求两数之和
  2. Graph Neural Networks: A Review of Methods and Applications(Semantic Segmentation应用解读)
  3. c语言的有趣小程序,一个有趣的小程序
  4. html分页实现w3c,分页_w3cschool
  5. Hadoop 跨集群复制文件
  6. 什么是 Unix 以及它为什么这么重要?
  7. java兔子问题 递归_兔子问题 —— 递归的应用
  8. 怎样改变java编码风格_如何说服同事修改些代码的风格(JAVA的)。。求指引
  9. 【亲测有效】win10下输入法突然变成繁体了怎么设置回来?
  10. 凌云一周看点 | 什么是云原生数据库;因云而生的云原生网络;大型团队如何从0到1自建SRE体系;空间数据模型之从CAD到BIM...
  11. 河海大学软件工程考研上岸经验贴
  12. pytorch(8)-- resnet101 迁移学习记录
  13. 从零开始 CMake 学习笔记 (G)compile-flags
  14. 雷神3开方算法解析,游戏运行速度提高四倍。
  15. PS制作透明的BMP图片
  16. data mining (foreign blogs)
  17. 啊哈添柴挑战Java1223. 输出对勾
  18. centos7如何安装chrome浏览器?
  19. pyecharts 世界地图国家中英文对照表
  20. Java8 Stream 中的 reduce() 方法,执行聚合操作

热门文章

  1. 使用GoAccess分析Nginx日志
  2. C++11中unique_ptr的使用
  3. vs2008常用操作汇总
  4. 【驱动】GNSS驱动:gpsOneXTRA 援助技术
  5. 【QT】Qtcreator的设计模式中将控件提升为自定义的控件
  6. oracle dataguard 日志 很多no,oracle dataguard 日志传输原理
  7. 如何拼通网络ip地址_如何解决IP地址冲突
  8. wxpython分割窗口_wxPython实现分隔窗口
  9. 全局变量和局部变量的区别_值得收藏!8大技巧,带你了解菜鸟和高手的区别!...
  10. c语言中floox的头文件,PC-1211袖珍计算机在合成氨厂生产中的应用 第五讲 循环语句(FOR-NEXT语句)...