目标:用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. iphone 屏幕投射到Mac上

    在实际的工作中,我们往往需要演示iPhone上面的程序,但是由于手机屏幕太小,无法同时给很多人看,这时候就需要进行屏幕投射.目前我需要实现的是投射到Mac上.我使用有线USB和无线Airplay两种方 ...

  2. 当今app行业 比较流行的 简称 汇总

    B=Business,即企业:C=Customers,即消费者,这样就好理解这些简称了:M=Medium,即媒介B2B:(Business To Business)商家对商家进行交易 如:阿里巴巴.生 ...

  3. 简谈Comparable和Comparator区别

    对于Comparable和Comparator这连个相似的接口,还是做一下比较比较好: Comparable Comparator (1)只包含一个compareTo()方法,此方法可以给两个对象排序 ...

  4. QQ协议的TEA加解密算法

    QQ通讯协议里的加解密算法. #include <stdio.h> #include <stdlib.h> #include <memory.h> #include ...

  5. Android应用架构

    Android开发生态圈的节奏非常之快.每周都会有新的工具诞生,类库的更新,博客的发表以及技术探讨.如果你外出度假一个月,当你回来的时候可能已经发布了新版本的Support Library或者Play ...

  6. android利用剪切板来实现数据的传递

    在Android开发中我们经常要遇到的一个问题就是数据在不同的Activity之间的共享.在Android开发中有很多种方法可以达到这个目地. 这里介绍一种比较常见.又常用的一种方法就是使用剪切板.我 ...

  7. hadoop伪分布安装

    解压 将安装包hadoop-2.2.0.tar.gz存放到/home/haozhulin/install/目录下,并解压 #将hadoop解压到/home/haozhulin/install路径下,定 ...

  8. 人一生必看的100部电影(全球最佳电影排名榜TOP250)

    人一生必看的100部电影(全球最佳电影排名榜TOP250) 人的一生能看多少部电影?假设我们每周都看一部,从10岁看到80岁将会看3640部.但是我们也不可能喜欢这全部的电影.大多数的可能,我们会根据 ...

  9. hadoop2.2编程:序列化

    测试序列化后的长度 提示:需要用到的类,以及继承关系如下: 1.java.lang.Object |__ java.io.OutputStream |__ java.io.ByteArrayOutpu ...

  10. 老的acm & oj学习站点

    1.网易小鱼博客 http://gisyhy.blog.163.com/blog/#m=0&t=1&c=fks_087069086082087064085081082095085084 ...