iOS swift使用xib绘制UIView
目标:用xib绘制一个UIView,在某个ViewController中调用。
三个文件:ViewController.Swift DemoView.swift DemoView.xib
首先,可以专心将DemoView.xib画出来,别忘记DemoView.xib中UIView的一处设置
然后,写DemoView.swift文件,代码如下:
- class CoreView: UIView {
- //MARK:
- //MARK: properties
- @IBOutlet weak var makefriendsBtn: UIButton!
- @IBOutlet weak var networkBtn: UIButton!
- @IBOutlet weak var everyoneBtn: UIButton!
- //MARK:
- //MARK: constraints
- @IBOutlet weak var makefriendsBtnWidth: NSLayoutConstraint!
- @IBOutlet weak var networkBtnWidth: NSLayoutConstraint!
- @IBOutlet weak var everyoneBtnWidth: NSLayoutConstraint!
- //MARK:
- //MARK: functions
- required init(coder aDecoder: NSCoder) {
- super.init(coder: aDecoder)
- }
- // Only override drawRect: if you perform custom drawing.
- // An empty implementation adversely affects performance during animation.
- override func drawRect(rect: CGRect) {
- makeupUI()
- }
- func makeupUI() {
- self.layer.masksToBounds = true
- self.layer.cornerRadius = 3
- makefriendsBtn.layer.borderWidth = 1
- makefriendsBtn.layer.cornerRadius = 3
- makefriendsBtn.layer.borderColor = UIColor(red: 107/256, green: 167/256, blue: 249/256, alpha: 1).CGColor
- makefriendsBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Selected)
- makefriendsBtn.addTarget(self, action: "buttonSelected:", forControlEvents: UIControlEvents.TouchUpInside)
- networkBtn.layer.borderWidth = 1
- networkBtn.layer.cornerRadius = 3
- networkBtn.layer.borderColor = UIColor(red: 107/256, green: 167/256, blue: 249/256, alpha: 1).CGColor
- networkBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Selected)
- networkBtn.addTarget(self, action: "buttonSelected:", forControlEvents: UIControlEvents.TouchUpInside)
- everyoneBtn.layer.borderWidth = 1
- everyoneBtn.layer.cornerRadius = 0
- everyoneBtn.layer.borderColor = UIColor(red: 107/256, green: 167/256, blue: 249/256, alpha: 1).CGColor
- everyoneBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Selected)
- everyoneBtn.addTarget(self, action: "buttonSelected:", forControlEvents: UIControlEvents.TouchUpInside)
- makefriendsBtnWidth.constant = (self.frame.width - 32 - 29) / 3 + 10
- networkBtnWidth.constant = (self.frame.width - 32 - 29) / 3 + 2
- everyoneBtnWidth.constant = (self.frame.width - 32 - 29) / 3 - 2
- }
- func buttonSelected(button: UIButton) {
- button.selected = !button.selected
- if button.selected == true {
- button.backgroundColor = UIColor(red: 107/256, green: 167/256, blue: 249/256, alpha: 1)
- } else {
- button.backgroundColor = UIColor.whiteColor()
- }
- }
- }
下面就可以在ViewController.swift中调用了:
- var myView = NSBundle.mainBundle().loadNibNamed("DemoView", owner: nil, options: nil).first as? DemoView
- myView?.frame = CGRect(x: 0, y: 0, width: self.view.frame.width-50, height: self.view.frame.height-140)
- myView?.center = self.view.center
- if myView != nil {
- self.view.addSubview(myView!)
- }
iOS swift使用xib绘制UIView的更多相关文章
- swift之xib关联UIView
有点坑爹,设置file owner 不行,搞了一早上,来说下怎么关联吧 自定义UIView要重写 required init(coder aDecoder: NSCoder) { super.init ...
- iOS Swift 模块练习/swift基础学习
SWIFT项目练习 SWIFT项目练习2 iOS Swift基础知识代码 推荐:Swift学习使用知识代码软件 0.swift中的宏定义(使用方法代替宏) 一.视图 +控件 1.UIImag ...
- ios swift 实现饼状图进度条,swift环形进度条
ios swift 实现饼状图进度条 // // ProgressControl.swift // L02MyProgressControl // // Created by plter on 7/2 ...
- 【iOS系列】-xib封装使用
[iOS系列]-xib封装使用 Xib文件可以用来描述某一块局部的UI界面 Xib文件的加载 修改xib文件的大小size(Freeform) 第一: NSArray *objs = [[NSBund ...
- Swift之xib模块化设计
一.解决问题 Xib/Storybarod可以方便.可视化的设置约束,在开发中也越来越重要.由于Xib不能组件化,使得封装.重用都变得不可行.本文将介绍一种解决方案,来实现Xib组件化. 二.模型块原 ...
- iOS swift的xcworkspace多项目管理(架构思想)
iOS swift的xcworkspace多项目管理(架构思想) 技术说明: 今天在这里分享 swift下的 xcworkspace多项目管理(架构思想),能为我们在开发中带来哪些便捷?能为我们对整 ...
- Building gRPC Client iOS Swift Note Taking App
gRPC is an universal remote procedure call framework developed by Google that has been gaining inter ...
- iOS Swift WisdomScanKit图片浏览器功能SDK
iOS Swift WisdomScanKit图片浏览器功能SDK使用 一:简介 WisdomScanKit 由 Swift4.2版编写,完全兼容OC项目调用. WisdomScanKit的 ...
- iOS Swift WisdomScanKit二维码扫码SDK,自定义全屏拍照SDK,系统相册图片浏览,编辑SDK
iOS Swift WisdomScanKit 是一款强大的集二维码扫码,自定义全屏拍照,系统相册图片编辑多选和系统相册图片浏览功能于一身的 Framework SDK [1]前言: 今天给大家 ...
随机推荐
- iphone 屏幕投射到Mac上
在实际的工作中,我们往往需要演示iPhone上面的程序,但是由于手机屏幕太小,无法同时给很多人看,这时候就需要进行屏幕投射.目前我需要实现的是投射到Mac上.我使用有线USB和无线Airplay两种方 ...
- 当今app行业 比较流行的 简称 汇总
B=Business,即企业:C=Customers,即消费者,这样就好理解这些简称了:M=Medium,即媒介B2B:(Business To Business)商家对商家进行交易 如:阿里巴巴.生 ...
- 简谈Comparable和Comparator区别
对于Comparable和Comparator这连个相似的接口,还是做一下比较比较好: Comparable Comparator (1)只包含一个compareTo()方法,此方法可以给两个对象排序 ...
- QQ协议的TEA加解密算法
QQ通讯协议里的加解密算法. #include <stdio.h> #include <stdlib.h> #include <memory.h> #include ...
- Android应用架构
Android开发生态圈的节奏非常之快.每周都会有新的工具诞生,类库的更新,博客的发表以及技术探讨.如果你外出度假一个月,当你回来的时候可能已经发布了新版本的Support Library或者Play ...
- android利用剪切板来实现数据的传递
在Android开发中我们经常要遇到的一个问题就是数据在不同的Activity之间的共享.在Android开发中有很多种方法可以达到这个目地. 这里介绍一种比较常见.又常用的一种方法就是使用剪切板.我 ...
- hadoop伪分布安装
解压 将安装包hadoop-2.2.0.tar.gz存放到/home/haozhulin/install/目录下,并解压 #将hadoop解压到/home/haozhulin/install路径下,定 ...
- 人一生必看的100部电影(全球最佳电影排名榜TOP250)
人一生必看的100部电影(全球最佳电影排名榜TOP250) 人的一生能看多少部电影?假设我们每周都看一部,从10岁看到80岁将会看3640部.但是我们也不可能喜欢这全部的电影.大多数的可能,我们会根据 ...
- hadoop2.2编程:序列化
测试序列化后的长度 提示:需要用到的类,以及继承关系如下: 1.java.lang.Object |__ java.io.OutputStream |__ java.io.ByteArrayOutpu ...
- 老的acm & oj学习站点
1.网易小鱼博客 http://gisyhy.blog.163.com/blog/#m=0&t=1&c=fks_087069086082087064085081082095085084 ...