在iOS开发中,有很多控件都是Xcode默认提供的。使用这些控件是很方便的。可是因为某些须要。须要自己设计控件,那么应该怎么做呢?在Xcode6中提供了这种接口,同意开发人员高速开发自己定义控件,而且能够提供实时预览功能。详细实现过程例如以下:

(1)新建一个Single View Application。Language选择Swift。然后在系统配置主界面中点击项目名称,选择Add Target.

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">.

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">.

(2)然后在弹出的对话框中选择Cocoa Touch Framework,输入名字就可以。我输入的项目名称是CustomViews。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

(3)新建完上述的Cocoa Touch Framework后。项目文件夹下多出了两个文件夹,如今的文件夹结构例如以下:

(3)在CustomViews中新建一个Cocoa Touch Class。

语言选择Swift,类名随意取,注意SubClass of要选择UIView。点击创建就可以。然后就会生成一个swift类。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

(4)首先在Main.storyboard中拖入一个View控件,能够自己任意设置一个背景颜色等。

等下就要用刚才的Swift类来自己定义设置这个View控件。注意这是个View控件。

(5)然后在这个控件的右側选择Indentity Inspector中的Class中输入刚才创建的Swift类,我输入的是MyViews,然后系统默认会把Module也填上。

(6)然后我们就能够去MyViews.swift中对控件进行自己定义设置了。写入例如以下代码:首先要把该类声明为@IBDesignable。表示是可被又一次设计的。

import UIKit

@IBDesignable class MyViews: UIView {

    //边框宽度;
@IBInspectable var borderWidth:CGFloat = 0{ didSet{ layer.borderWidth = borderWidth
}
} //边框颜色。
@IBInspectable var borderColor:UIColor = UIColor.clearColor(){ didSet{ layer.borderColor = borderColor.CGColor
}
} //圆角半径;
@IBInspectable var cornerRadius:CGFloat = 0{ didSet{ layer.cornerRadius = cornerRadius
}
} //背景颜色;
@IBInspectable var backgroundColors:UIColor = UIColor.clearColor(){ didSet{ layer.backgroundColor = backgroundColors.CGColor
}
} }

(7)然后再来到Main.storyboard中,选中刚才的View控件,此时发现右側多了几个设置属性的选项。各自是设置边框宽度。边框颜色,圆角半径和背景颜色,如图:

通过改变属性。能够在界面中实施查看当前的设计结果:

通过以上步骤。我们就能够任意的设计自己喜欢的控件效果了。

github主页:https://github.com/chenyufeng1991  。

欢迎大家訪问。

iOS项目开发实战——使用Xcode6设计自己定义控件与图形的更多相关文章

  1. iOS项目开发实战——学会使用TableView列表控件(四)plist读取与Section显示

    文本将会实现把数据存储到plist文件里.然后在程序中进行读取.在TableView控件中依据不同的类别显示Section. 有关TableView 的其它实现,请參考<iOS项目开发实战--学 ...

  2. 聚合数据 iOS 项目开发实战:条码查询器

    记录下,聚合数据 iOS 项目开发实战:条码查询器:视频地址:http://www.jikexueyuan.com/course/324.html 条码查询API:https://www.juhe.c ...

  3. iOS项目开发实战——学会使用TableView列表控件(二)

    要在iOS开发中使用TableView列表控件,不仅能够直接使用TableViewController作为整个主界面,并且还能够使用TableView控件来实现.使用TableView能够进行很多其它 ...

  4. iOS项目开发实战——使用CoreLocation获取当前位置信息

    随着基于位置服务LBS和移动互联网的兴起,你的位置是越来越重要的一个信息.位置服务已经是当前的热门应用如微信.陌陌等社交应用的杀手锏.而在iOS开发中,苹果已经给我们提供了一个位置接口.CoreLoc ...

  5. iOS项目开发实战——通过Http Get方式与server通信

    移动client往往须要同后台server进行通信,上传或者下载数据,最经常使用到的方式就是Http Get,如今我们来学习在iOS项目中使用Get方式同server进行通信. [一]server端实 ...

  6. iOS项目开发实战——iOS网络编程获取网页Html源码

    现在我们身处互联网的时代.不论什么一个软件或是App,都会或多或少与网络打交道,并不断发生数据交互.一个没有涉及网络编程的应用会显得比較low,这里我们将会開始使用Swift开发iOS应用,而且主要来 ...

  7. iOS项目开发实战——plist数组解析

    plist数据是苹果公司创造的数据格式,基于XML,因为在iOS,Mac系统中操作plist很方便,所以我们经常会用到.在iOS项目中.系统会自己主动生成一个Info.plist文件,里面存放了iOS ...

  8. iOS项目开发实战——自己定义圆形进度提示控件

    iOS中默认的进度条是水平方向的进度条,这往往不能满足我们的需求. 可是我们能够自己定义类似的圆形的进度提示控件,主要使用iOS中的画图机制来实现. 这里我们要实现一个通过button点击然后圆形进度 ...

  9. iOS项目开发实战——使用同步请求获取网页源码

    网络请求一般分为同步请求和异步请求,同步请求假设訪问时间过长,会造成界面卡死状态,用户体验不是非常好.可是请求速度较快的话,也能够考虑使用同步訪问.如今先来学习同步訪问. (1)在viewDidLoa ...

随机推荐

  1. 【转载】cocos2dx 中 Android NDK 加载动态库的问题

     原文地址:http://blog.csdn.net/sozell/article/details/10551309 cocos2dx 中 Android NDK 加载动态库的问题 闲聊 最近在接入各 ...

  2. JavaScript Array 整理 - 元素操作

    整理一下Array对象中针对元素操作的方法. 分别是: concat (组合数组) join(数组转字符串) pop(删除最后一个元素) shift(删除第一个元素) push(在数组尾部添加新元素) ...

  3. 3.0 Windows和Linux双系统安装(3)

    3.0 Windows和Linux双系统安装(3) 3.1 精简的安装步骤如下:(如果已经有了前面两篇教程的安装经验,推荐看完3.1即可动手了) 双系统很多开发新人会用到,而且比起虚拟机好处是运行效率 ...

  4. Dijkstra的双栈算术表达式求值算法 C++实现

    #include<iostream> #include<string> using namespace std; template<typename T> clas ...

  5. js截取字符串测试

    function gget() { $.ajax({ type: "GET", url: "index", data: { U: '1234', P: '000 ...

  6. rabbitmq-3.5.1-安裝

    系统版本:CentOS 6.5RabbitMQ-Server:3.5.1一.安装erlang1.安装准备,下载安装文件 wget https://packages.erlang-solutions.c ...

  7. 解析MYsql写的表达式

    今天遇到个问题,Sql中直接写的是复杂表达式,如何解析呢? round(((0.00579049505+0.00006600324*JING_JIE^2*SHU_GAO-0.00000046921*J ...

  8. Unity与Android通信的中间件

    2.1.1 Fragment和Activity都需要实现的接口——IBaseView/** * Description:Basic interface of all {@link Activity} ...

  9. java中为什么不允许类多重继承,却允许接口多重继承

    首先看下面这一段代码:(底下有热心网友更正,jdk1.8之后情况确实有点变化,等改天有空继续更) interface a{ void b();}interface a1 extends a{ void ...

  10. MySQL基础命令小结

    数据库授权登录[root@localhost ~]# mysql -uroot -p123456mysql> grant select,lock tables on auth.* to 'adm ...