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!)
- }
swift使用xib绘制UIView相关推荐
- swift iOS8 XIB 问题 ViewController.init() xib
对于OC 中 ViewController *vc = [[ViewController alloc] init],方法默认会加载一个同名的xib文件当View.但是在swift中 ViewCont ...
- 用xib自定义UIView并在代码中使用--iOS
首先新建一个空的xib文件: 将size改为freedom: 然后在xib中自定义视图(添加自己想要的其它视图): 要写好约束, 创建一个继承uiview的类和他关联,然后就可以调用了. - (voi ...
- iOS swift 倒圆角并绘制阴影
给View倒某几个角为圆角 //倒左右上边两个圆角let bottomPaskPath = UIBezierPath.init(roundedRect: CGRect.init(x: 0, y: 0, ...
- Swift 使用xib自定义UITableViewCell
使用xib自定义tableviewCell看一下效果图 1.自定义列 新建一个xib文件 carTblCell,拖放一个UITableViewCell,再拖放一个图片和一个文本框到tableviewc ...
- iosxib 设置图片_iOS使用xib自定义UIView
一般自定义View代码方式 //1-在初始化的时候添加 子Views - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:f ...
- 微信sdk swift版_使用Swift 4的iOS版Google Maps SDK终极指南
微信sdk swift版 by Dejan Atanasov 通过Dejan Atanasov 使用Swift 4的iOS版Google Maps SDK终极指南 (Your ultimate gui ...
- 图片轮播器(swift)
如何实现一个无限循环,无缝衔接的图片轮播器 自己实现一次以后就不用使用轮播器的框架了 能用代码解决的问题就不在这里瞎BB了 O(∩_∩)O 首先先在Carousel文件件夹创建以下几个文件 Caro ...
- xib、stoaryboard详解
一.xib.sb简介 1.xib执行效率的确没有代码效率高,因为加载要多一步--把xib文件加载到内存中 2.SB还会省去很多页面跳转之间的胶水代码(segue),甚至不用写代码就能实现在各个页面中切 ...
- 怎样在swift中创建CocoaPods
本文由yake_099(博客)翻译自raywenderlich,作者:Joshua Greene 原文:How to Create CocoaPods with Swift 你可能对一些比较著名的开源 ...
最新文章
- 【c语言】求两数之和
- Graph Neural Networks: A Review of Methods and Applications(Semantic Segmentation应用解读)
- c语言的有趣小程序,一个有趣的小程序
- html分页实现w3c,分页_w3cschool
- Hadoop 跨集群复制文件
- 什么是 Unix 以及它为什么这么重要?
- java兔子问题 递归_兔子问题 —— 递归的应用
- 怎样改变java编码风格_如何说服同事修改些代码的风格(JAVA的)。。求指引
- 【亲测有效】win10下输入法突然变成繁体了怎么设置回来?
- 凌云一周看点 | 什么是云原生数据库;因云而生的云原生网络;大型团队如何从0到1自建SRE体系;空间数据模型之从CAD到BIM...
- 河海大学软件工程考研上岸经验贴
- pytorch(8)-- resnet101 迁移学习记录
- 从零开始 CMake 学习笔记 (G)compile-flags
- 雷神3开方算法解析,游戏运行速度提高四倍。
- PS制作透明的BMP图片
- data mining (foreign blogs)
- 啊哈添柴挑战Java1223. 输出对勾
- centos7如何安装chrome浏览器?
- pyecharts 世界地图国家中英文对照表
- Java8 Stream 中的 reduce() 方法,执行聚合操作
热门文章
- 使用GoAccess分析Nginx日志
- C++11中unique_ptr的使用
- vs2008常用操作汇总
- 【驱动】GNSS驱动:gpsOneXTRA 援助技术
- 【QT】Qtcreator的设计模式中将控件提升为自定义的控件
- oracle dataguard 日志 很多no,oracle dataguard 日志传输原理
- 如何拼通网络ip地址_如何解决IP地址冲突
- wxpython分割窗口_wxPython实现分隔窗口
- 全局变量和局部变量的区别_值得收藏!8大技巧,带你了解菜鸟和高手的区别!...
- c语言中floox的头文件,PC-1211袖珍计算机在合成氨厂生产中的应用 第五讲 循环语句(FOR-NEXT语句)...