前言:博主接触iOS的编程也有一段时间,今天把有关UI控件的一些知识在这里做一些总结。

申明:此系列文章都是使用目前最新版本swift3.0.1进行讲解的,与其他版本可能略有差异。

一,UIKit之设置圆角及阴影(对于lable和button这两个简单控件就不介绍了)

 let imageView = UIImageView(frame: CGRect(x: , y: , width: , height: ))
imageView.backgroundColor = UIColor.brown self.view.addSubview(imageView) //设置圆角
imageView.layer.masksToBounds = true
//设置圆角弧度(值越大,越圆)
imageView.layer.cornerRadius =
//设置边框
imageView.layer.borderWidth = 2.3
imageView.layer.borderColor = UIColor.red.cgColor
//设置阴影
imageView.layer.shadowOffset = CGSize(width: ,height: )
imageView.layer.shadowColor = UIColor.blue.cgColor
imageView.layer.shadowOpacity =

问题来了:设置圆角和阴影都没什么难度,如果是要设置一个元素即设置圆角又设置阴影可并不是想象中这么简单。

 //设置阴影同时设置圆角及边框发现传统方式无效
//因为setMasksToBounds表示对frame外的内容进行了裁减,只可显示frame内的内容。由于这种方法加的阴影在frame外,所以被裁减了。(Google结果,其实我也不懂这个解释)
let imageView2 = UIImageView(frame: CGRect(x: , y: , width: , height: ))
imageView2.backgroundColor = UIColor.brown self.view.addSubview(imageView2) //设置圆角
//将此行注释即可//imageView2.layer.masksToBounds = true
//设置圆角弧度(值越大,越圆)
imageView2.layer.cornerRadius =
//设置边框
imageView2.layer.borderWidth = 2.3
imageView2.layer.borderColor = UIColor.red.cgColor
//设置阴影
imageView2.layer.shadowOffset = CGSize(width: ,height: )
imageView2.layer.shadowColor = UIColor.blue.cgColor
imageView2.layer.shadowOpacity =

右图为模拟器效果图

二,UIKit之UIImageView

 //创建imageView对象并设定大小以及位置
let imageView:UIImageView = UIImageView(frame: CGRect(x: , y: , width: , height: )) // //给imageView对象设置图片
// imageView.image = UIImage(named: "no1.jpg")
// //设置imageView的背景颜色
// imageView.backgroundColor = UIColor.blue
// imageView.highlightedImage = UIImage(named: "no2.jpg")
// imageView.isHighlighted = true
self.view.addSubview(imageView) //设置动画效果
//设置图片数组
var imgArr:Array<UIImage?> = Array()
let img1:UIImage? = UIImage(named: "no1.jpg")
let img2:UIImage? = UIImage(named: "no2.jpg")
imgArr.append(img1)
imgArr.append(img2)
print(imgArr.count)
imageView.animationImages = imgArr as? [UIImage]
//设置动画重复次数
imageView.animationRepeatCount =
//设置一次动画执行时间
imageView.animationDuration =
//启动动画
imageView.startAnimating()

三,UIKit之搜索框

1.搜索框属性设置

         //设置搜索框上的默认提示语
searchBar.placeholder = "请输入关键字" //设置搜索框上显示的默认文字
searchBar.text = "swift"
//设置搜索框风格
//searchBar.barStyle = UIBarStyle.blackOpaque
//设置搜索框背景文字
searchBar.prompt = "背景文字"
//设置相应功能按钮的显示与否
searchBar.showsCancelButton = true
searchBar.showsBookmarkButton = true
searchBar.showsSearchResultsButton = true
//设置游标以及相关渲染颜色
searchBar.tintColor = UIColor.blue
//searchBar.barTintColor = UIColor.brown
//设置搜索框附件视图
searchBar.scopeButtonTitles = ["新闻","军事","娱乐","游戏"]
//设置搜索框视图是否可见
searchBar.showsScopeBar = true
//设置代理(必须实现UISearchBarDelegate协议)
searchBar.delegate = self self.view.addSubview(searchBar)

2,搜索框回调函数

 //设置搜索框是否获得焦点事件
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
//设置小键盘收放
searchBar.resignFirstResponder()
} //设置点击附件视图代理方法的回调
func searchBar(_ searchBar: UISearchBar, selectedScopeButtonIndexDidChange selectedScope: Int) {
print(selectedScope)//selectedScope所点击的附件标识
} //设置图书按钮点击后的回调方法
func searchBarBookmarkButtonClicked(_ searchBar: UISearchBar) {
print("searchBarBookmarkButtonClicked")
} //设置取消按钮点击后的回调方法
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
print("searchBarCancelButtonClicked")
} //设置搜索按钮点击后的回调方法(此方法在小键盘收起时,按钮默认不可用)
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
print("searchBarSearchButtonClicked")
} //设置搜索结果按钮点击后的回调方法
func searchBarResultsListButtonClicked(_ searchBar: UISearchBar) {
print("searchBarResultsListButtonClicked")
} //设置搜索框进入编辑方法,若return false将无法进入编辑
func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool {
return true
} //设置搜索框退出编辑方法,若return false将无法退出编辑
func searchBarShouldEndEditing(_ searchBar: UISearchBar) -> Bool {
return true
} //设置搜索框已经进入编辑状态的回调方法
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
print("已经进入编辑状态")
} //设置搜索框已经退出编辑状态的回调方法
func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {
print("已经退出编辑状态")
} //输入框文字变化时调用的方法
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
//print(searchText)(当使用键盘输入时,每输入一个字符便会输出此时搜索框的文字,若是粘贴一个字符串同理)
} //检测用户输入文字
func searchBar(_ searchBar: UISearchBar, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
print(text)//(当使用键盘输入时,每输入一个字符便会输出这个字符,若是粘贴一个字符串则会输出这个字符串)
return true
}

四,UIKit之开关控件

         let mySwitch:UISwitch = UISwitch(frame: CGRect(x: , y: ,  width: , height: ))

         //设置滑块颜色
mySwitch.thumbTintColor = UIColor.blue //设置开关开启颜色
mySwitch.onTintColor = UIColor.black //设置开关关闭颜色
mySwitch.tintColor = UIColor.brown //设置开关被使用的事件
//Selector参数可以通过#selector(方法名)这种方式调用一个方法
mySwitch.addTarget(self, action: #selector(self.switchClick(sw:)), for: UIControlEvents.valueChanged) self.view.addSubview(mySwitch)
} func switchClick(sw:UISwitch){
if sw.isOn{
self.view.backgroundColor = UIColor.white
}else{
self.view.backgroundColor = UIColor.darkGray
}
}

小结:1,在iOS中的控件其实与HTML中的元素有一定的相似之处,而在iOS中一个个标签的样式则是封装在一个个的对象之中。

2,在iOS的控件中大多有一些默认的样式,并且这些样式的交互性还是挺不错的,可以减少我们的开发周期。

3,大多标签有着相同的方法,例如标签是否可用isEnabled方法几乎所有的控件可用。

4,控件有哪些属性以及方法都可以通过查看该控件源码或是其父类或是自己的扩展类中知道,并不需要刻意的去强记。

iOS之UIKit系列教程<一>的更多相关文章

  1. iOS 9 适配系列教程

    http://www.cocoachina.com/ios/20150703/12392.html 本文是投稿文章,作者:ChenYilong(https://github.com/ChenYilon ...

  2. iOS 9适配系列教程:后台定位

    http://www.cocoachina.com/ios/20150624/12200.html Demo:GitHub地址 [iOS9在定位的问题上,有一个坏消息一个好消息]坏消息:如果不适配iO ...

  3. 【REACT NATIVE 系列教程之十二】REACT NATIVE(JS/ES)与IOS(OBJECT-C)交互通信

    http://blog.csdn.net/xiaominghimi/article/details/51586492 一用到跨平台的引擎必然要有引擎与各平台原生进行交互通信的需要.那么Himi先讲解R ...

  4. iOS Core Animation 简明系列教程

    iOS Core Animation 简明系列教程  看到无数的CA教程,都非常的难懂,各种事务各种图层关系看的人头大.自己就想用通俗的语言翻译给大家听,尽可能准确表达,如果哪里有问题,请您指出我会尽 ...

  5. iOS 微信消息拦截插件系列教程-(总目录)

    微信iOS消息拦截插件教程 标签: 越狱开发 背景介绍 本教程所有内容免费 本教程来源于一次知识分享,如果有需要了解更多的 请联系QQ:480071411 iOS逆向高级开发群:375024882 1 ...

  6. iOS 微信消息拦截插件系列教程-附录(服务端成果展示)

    微信iOS消息拦截插件教程 标签: 越狱开发 背景介绍 本教程所有内容免费 本教程来源于一次知识分享,如果有需要了解更多的 请联系QQ:480071411 iOS逆向高级开发群:375024882 服 ...

  7. (翻译)开始iOS 7中自动布局教程(二)

    这篇教程的前半部分被翻译出来很久了,我也是通过这个教程学会的IOS自动布局.但是后半部分(即本篇)一直未有翻译,正好最近跳坑翻译,就寻来这篇教程,进行翻译.前半部分已经转载至本博客,后半部分即本篇.学 ...

  8. iOS开发 ReactiveCocoa入门教程 第一部分

    作为一个iOS开发者,你写的每一行代码几乎都是在响应某个事件,例如按钮的点击,收到网络消息,属性的变化(通过KVO)或者用户位置的变化(通过CoreLocation).但是这些事件都用不同的方式来处理 ...

  9. 【原】iOSCoreAnimation动画系列教程(二):CAKeyFrameAnimation【包会】

    在上一篇专题文章[原]iOSCoreAnimation动画系列教程(一):CABasicAnimation[包会]中我们学习了iOS核心动画CoreAnimation中CABasicAnimation ...

随机推荐

  1. UITableView cell复用出错问题 页面滑动卡顿问题 & 各杂七杂八问题

    UITableView 的cell 复用机制节省了内存,但是有时对于多变的自定义cell,重用时会出现界面出错(例如复用出错,出现cell混乱重影).滑动卡顿等问题,这里只简单敲下几点复用出错时的解决 ...

  2. minSdkVersion maxSdkVersion targetSdkVersion target 的区别

    minSdkVersion 描述:app最低支持的sdk版本号 作用:如果手机SdkVersion小于app中定义的minSdkVersion,则android系统不允许安装该app 定义位置:And ...

  3. xml文件解析(解析以后在RootTableViewController输出)

    这是从美团弄得xml文件,地区和经纬度. 你点了地区以后 ,  就可以查看经纬度 ,因为笔者懒, 有现成的文本框 , 所有偷懒了. 下面是一些枯燥的代码了 . #import <UIKit/UI ...

  4. MySQL可视化软件Work Bench导出导入数据库

    首先打开你的work bench,输入你的密码进入主页面 A:导入数据库 在Schemas空白处右键选择Create~:建立一个数据库,然后就可以导入你的sql文件了 File-->Open S ...

  5. 多值(in),范围值(between..and)

    多值检测 关键词[in]   查出年龄是23,24,28 的人员信息 select * from T_Employee  where FAge  in (23,25,28) in 后面如果跟子查询, ...

  6. oracle调用JAVA类的方法

    导入jar包 在oracle中导入需要的jar包,我们把编辑好的java类打成jar包,直接在oarcle里面写简单的调用就可以了,  1.操作系统需要拥有支持loadjava命令的jdk.  2.加 ...

  7. ios10.2真机调试包,ios升级10.2后需要添加

    下载地址: http://download.csdn.net/detail/koktear/9710820 添加地址: finder-应用程序-找到Xcode-右击显示包内容-Contents-Dev ...

  8. qt中ui的 使用介绍

    1.什么是ui?ui通常是用Qt 设计师设计出来的界面文件的后缀.通常情况下ui是一个指向这个界面类的指针.ui-> 一般就是用来访问这个界面类里面的控件.例如你的ui文件里有一个叫okButt ...

  9. __dbg.h

    #ifndef __HSS_DBG_HSS__ #define __HSS_DBG_HSS__ /*************************************************** ...

  10. .NET判断是否为AJAX提交

    AJAX异步方式请求比同步方式请求HTTP头部多一个 X-Requested-With 直接影响 C#中 Request.IsAjaxRequest() 的判断,同步方式判断为false 当然也可以自 ...