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!)
        }

---------- over ----------

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 20:20:37

iOS swift使用xib绘制UIView的相关文章

swift之xib关联UIView

有点坑爹,设置file owner 不行,搞了一早上,来说下怎么关联吧 自定义UIView要重写 required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } xib里面,不能设置file owner,要设置View的custom class 指定自定义的UIView文件名 然后outlet xib的控件到自定义UIView类中即可

ios 基本图形的绘制 基于bitmap 位图

内容包括 图片水印,图片裁剪,屏幕截图,背景平铺 1.图片水印功能 #import "UIImage+MJ.h" @implementation UIImage (MJ) + (instancetype)waterImageWithBg:(NSString *)bg logo:(NSString *)logo { UIImage *bgImage = [UIImage imageNamed:bg]; // 1.创建一个基于位图的上下文(开启一个基于位图的上下文) UIGraphicsB

iOS 使用 Core Plot 绘制统计图表入门

本文转载至 http://blog.csdn.net/zhibudefeng/article/details/7677457 iOS(iPhone/iPad) 下图形组件有两个有名的,s7graphview 和 Core Plot,它们都是在 Google 上托管的代码,听说 Core Plot 比较强,因为前者仅支持曲线图,后者呢曲线图.饼图.柱状图等通吃,且较活跃.那就专注下 Core Plot 的使用.它提供了 Mac OS X 和 iOS 下的组件库,我只用到它的 iOS 图表库. Co

ios Swift 国外资源

Swift国外资源汇总(No.1) 此类分享贴暂定每2天更新一次,主要目的是让大家能跟国外开发者们同步,共享知识和共同提高. 对于一些非常有价值的文章,大家有兴趣可以自行翻译(回贴跟我说一声,避免重复劳动,之后发布到论坛或自己blog都可以),我也会将相关链接同步到本贴. 编程思想 Why Objective-C is doomed主要观点:1. Swift跟ObjC互用做的非常好 2. 预计未来会出现Swift-first趋势,官方库和第三方库都会优先考虑Swift实现 3. iOS&OS X

Swift之xib模块化设计

一.解决问题 Xib/Storybarod可以方便.可视化的设置约束,在开发中也越来越重要.由于Xib不能组件化,使得封装.重用都变得不可行.本文将介绍一种解决方案,来实现Xib组件化. 二.模型块原理 在介绍原理之前,我们先弄清楚两个概念: 从上图可以看出,分别选中File's Owner及根视图View,都有Custom Class属性面板.其中Class属性,有什么作用,区别又是什么呢? 2.1 View的Class属性 View的Class属性用于指定选中的视图的实例化类.Xib实际上是

[IOS]swift自定义uicollectionviewcell

刚刚接触swift以及ios,不是很理解有的逻辑,导致某些问题.这里分享一下swift自定义uicollectionviewcell 首先我的viewcontroller不是直接继承uicollectionviewcontroller,而是添加的uicollectionview到我的storyboard, 然后再新建一个swift的文件,让这个swift继承uicollectionviewcell import Foundation class SVGCell :UICollectionView

iOS:Swift界面实例1, 简单界面

Apple推出了基于Objective-C的新语言Swift. 通过实例, 我们可以很好的感受这门新语言 注意事项: 在XCode6_Beta中, 如果有中文, IDE的自动补全功能就会失效, 所以开始调试的时候可以先用英文, 后面再用中文替代. 1. 新建iOS -> Single View Application. 2. 修改AppDelegate.swift文件 1 // 2 // AppDelegate.swift 3 // UIByCode_Swift_1_HelloWorld 4 /

iOS - Swift UISearchController仿微信搜索框

0x01.创建一个UISearchController 如果传入的searchController为nil,则表示搜索的结果在当前控制器中显示,现在我让它在searchVC中显示. // 创建searchResultVC let searchVC = UIViewController() // 设置背景颜色为红色 searchVC.view.backgroundColor = UIColor.red let searchController = UISearchController(search

用XIB创建UIView

用XIB创建UIView  一般创建UIView时,同时创建XIB这个选项是不允许选择的,但是可以自己创建一个XIB,与类关联起来 step1 创建XIB,类名最好与类的名称相同,易区分,关联类     注: 要改变UIView的大小,将UIView的属性size选择为freedom step 2 在XIB中添加控件,将属性添加到类中,并在类中写一个初始化instanceView类方法 HeadView.m + (HeadView *)instanceView { NSArray *nibVie