目标:用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. xcode 升级插件失效问题

    摘要  Xcode 升级到7之后VVDocumenter-Xcode,OMColorSense,KSImageNamed等一系列的插件失效的解决办法,以及不小心误点了 Skipbundle 的解决办法 ...

  2. FFMPEG视音频编解码零基础学习方法-b

    感谢大神分享,虽然现在还看不懂,留着大家一起看啦 PS:有不少人不清楚“FFmpeg”应该怎么读.它读作“ef ef em peg” 0. 背景知识 本章主要介绍一下FFMPEG都用在了哪里(在这里仅 ...

  3. android SurfaceView绘制 重新学习--切图clipRect详解

    解释都在代码注释中: public class SampleView extends View { private Paint mPaint; private Path mPath; public S ...

  4. Jersey的异常处理

    Jersey框架为我们提供了更为通用异常处理方式.通过实现ExceptionMapper接口并使用@Provider注解将其定义为一个Provider,可以实现通用的异常的面向切面处理,而非针对某一个 ...

  5. js node

    http://blogs.msdn.com/b/scott_hanselman/archive/2011/11/29/window-iis-node-js.aspx http://www.16kan. ...

  6. SPRING IN ACTION 第4版笔记-第三章Advancing wiring-001-DataSource在应用和开发环境之间切换 profile

    一. DataSource在应用和开发环境的产生方式不同,可以用srping 的profile管理 Spring’s solution for environment-specific beans i ...

  7. android 读写SD卡文件

    参考: http://www.oschina.net/code/snippet_176897_7336#11699 写文件: private void SavedToText(Context cont ...

  8. C#程序集使用强名字(Strong Name)签名/强名称签名

    强名称签名的方法: 强签名: 1. 可以将强签名的dll注册到GAC,不同的应用程序可以共享同一dll. 2. 强签名的库,或者应用程序只能引用强签名的dll,不能引用未强签名的dll,但是未强签名的 ...

  9. 【HDOJ】3466 Proud Merchants

    先排序预处理,后01背包. #include <stdio.h> #include <string.h> #include <stdlib.h> #define M ...

  10. 【转】Xcode7.1环境下上架iOS App到AppStore 流程 (Part 一)

    原文网址:http://www.cnblogs.com/ChinaKingKong/p/4957682.html 前言部分 之前App要上架遇到些问题到网上搜上架教程发现都是一些老的版本的教程 ,目前 ...