目标:用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. 定位 - CoreLocation - 区域报警

    #import "ViewController.h" #import <CoreLocation/CoreLocation.h> @interface ViewCont ...

  2. java 常用基本数据类型的默认值

    在使用基本数据类型作为类成员的时候,有时只初始化了而没有给变量赋值,那么此时,java会给你的变量赋一个默认初始值. boolean        false char              '/ ...

  3. DZ的伪静态神马的终于OK了

    十分感谢开发“凤凰图集”的onexin团队!帮忙搞定了伪静态!这玩意儿折腾了俺好多功夫,人家瞬间就搞定.

  4. 老陈---谈Delphi中SSL协议的应用[转]

    摘要:本文主要介绍如何在Delphi中使用SSL协议.一共分为七个部分:(1)SSL协议是什么?(2)Delphi中如何使用SSL协议?(3)SSL客户端编程实例.(4)SSL服务端编程实例.(5)S ...

  5. 【Xamarin挖墙脚系列:移动设备应用的开发周期及准则】

    原文:[Xamarin挖墙脚系列:移动设备应用的开发周期及准则] 原文地址:https://developer.xamarin.com/guides/cross-platform/getting_st ...

  6. FishEye简介

    前言     在项目开发过程中,随着开发的进行,将有大量的代码编写提交到代码仓库,如何能全面准确的了解源代码的变化,提交的频率,代码量的趋势,发现代码的缺陷,将是控制源代码质量的重要指标,这个时候一个 ...

  7. oracle时间模型

    Oracle在9i或者早期的版本,对于性能优化方面,主要采用命中率模型,后面的版本,也保留着命中率模型,比如在awr报告中,Instance Efficiency Percentages (Targe ...

  8. BZOJ_1003_[ZJOI2006]_物流运输_(动态规划+最短路)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1003 m个码头,从1运货到m,n天每天运,其中有一些码头在特定的天里不能使用.运货的代价:在两 ...

  9. Unable to Rebuild JIRA Index

    Symptoms Accessing certain JIRA pages result in: SEVERE: Internal server error com.atlassian.jira.is ...

  10. http Error 503 server unavailable

    服务器的环境为: 系统:Windows server 2008 64位 数据库:Oracle 10g WEB应用服务:IIS 7.0+.Net Framework 4.0 无法打开服务元数据库路径“/ ...