UIKit框架提供了一系列Class类来创建和管理iOS应用程序的用户界面接口、应用程序对象、事件开头、绘图模型、窗口、视图和用于视图触摸屏等接口。UIKit框架是iOS上的用户图形包,UI开头的类都来自这个框架。
从UIKit中类的结构图中可以了解每个控件的继承顺序,以UIButton按钮控件为例,它在结构图中位于NSObject—>UIResponder—>UIView—>UIControl—>UIButton,从UIButton控件继承类中可以看出,该控件是一种能够响应用户触摸事件的、用户界面显示的类。
UIKit的主要功能包括:
·构建和管理应用程序的用户界面
·捕获触摸和基于移动的交互事件
·呈现文字和web内容
·优化多任务的应用程序
·创建自定义的界面元素

UIButton按钮控件:
UIButton是UIControl的一个子类,它实现了在触摸屏上添加交互按钮的功能,同时UIButton类继承UIView类,这使得UIButton可以在屏幕上显示内容。而UIView继承UIResponder,从而允许按钮响应用户触摸和手势.

下面展示
不同样式的UIButton按钮

代码(在viewDidLoad方法中创建):

override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view.let buttonTypes:[UIButton.ButtonType]=[.system,.contactAdd,.detailDisclosure,.infoDark,.infoLight,.roundedRect]//按钮样式数组for i in 0..<buttonTypes.count{//循环生成6种不同样式的按钮let button = UIButton(type: buttonTypes[i])button.frame = CGRect(x:100,y:50+i*50,width:120,height: 30)if i==0||i==5{button.setTitle("Button\(i+1)", for: .normal)//设置title标签属性}self.view.addSubview(button)}}

在viewDidLoad方法中依次创建了六种UIButton按钮,并给第一个和最后一个按钮设置了title标题属性
UIButton按钮不同的状态:

代码(在viewDidLoad方法中创建):

  //UI按钮的状态override func viewDidLoad() {super.viewDidLoad()let titleStates:[String]=["正常状态","高亮状态","选中状态","失效状态"]let buttonStates:[UIControl.State] = [.normal,.highlighted,.selected,.disabled]let button1 = UIButton(type: .system)button1.frame = CGRect(x:80,y:50,width: 140,height: 30)//宽高及位置button1.setTitle(titleStates[0], for: buttonStates[0])//设置titlebutton1.setBackgroundImage(UIImage(named: "btNormal"), for: UIControl.State.normal)//插入背景图片self.view.addSubview(button1)let button2 = UIButton(type: .system)button2.frame = CGRect(x:80,y:100,width: 140,height: 30)button2.setTitle(titleStates[1], for: buttonStates[1])button2.setBackgroundImage(UIImage(named: "btHighlighited"), for: UIControl.State.highlighted)//插入背景图button2.isHighlighted = trueself.view.addSubview(button2)let button3 = UIButton(type: .system)button3.frame = CGRect(x:80,y:150,width: 140,height: 30)button3.setTitle(titleStates[2], for: buttonStates[2])button3.setBackgroundImage(UIImage(named:"btSelected"), for: UIControl.State.selected)//背景图button3.isSelected = trueself.view.addSubview(button3)let button4 = UIButton(type: .system)button4.frame = CGRect(x:80,y:200,width: 140,height: 30)button4.setTitle(titleStates[3], for: buttonStates[3])button4.setBackgroundImage(UIImage(named: "btDisabled"), for: UIControl.State.disabled)//背景图button4.isEnabled = falseself.view.addSubview(button4)}

在viewDidLoad方法中创建了四种不同状态的UIButton按钮,并通过setTitle(_:for:)方法给四种不同状态的按钮设置了不同的标题。

UIButton按钮事件的响应:

通过addTarget(:action:for:)方法指定了响应其触摸事件的target为self,使用#selector选择器设置action为ViewController类的buttonTapped(:)方法,并指定响应事件为UIController枚举中的touchUpinside选项。即当用户点击按钮抬起手指时触发该事件,执行buttonTapped方法。代码:

 override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.let button = UIButton(type: UIButton.ButtonType.roundedRect)button.frame = CGRect(x: 20, y: 100, width: 280, height: 44)button.backgroundColor = UIColor.purplebutton.tintColor = UIColor.yellowbutton.setTitle("Tap Me", for: .normal)button.addTarget(self, action: #selector(ViewController.buttonTapped(_:)), for: UIControl.Event.touchUpInside)self.view.addSubview(button)}@objc func buttonTapped(_ button:UIButton)//响应方法{button.setTitle("The button is tapped.", for: .normal)button.isEnabled = false}override func didReceiveMemoryWarning() {super.didReceiveMemoryWarning()// Dispose of any resources that can be recreated.}

Xcode iOS开发:UIKit常用组件之按钮控件相关推荐

  1. iOS开发基础-常用组件(上)

    目录 1.UILabel 2.UIScrollView(滚动视图) 3.UINavigationController(导航控制器) 4.UITableView(表格) 5.UIImageView(图像 ...

  2. Swift学习笔记笔记(七) UIKit常用组件的使用

    一.实验目的: 1.掌握Cocoa程序的创建 2.掌握UILabel组件的使用 3.掌握UIButton组件的使用 4.掌握UITextField组件的使用 二.实验原理: 1.Cocoa应用程序框架 ...

  3. iOS开发中常用的方法

    iOS开发中常用的方法 系统弹窗: 过期方法: UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"确认报价" ...

  4. 基于XCode IOS开发系统实现的新闻APP设计

    一.项目概述 1.1 项目介绍 本次课程设计所实现的新闻阅读APP是基于XCode IOS开发系统上开发的一款可以查看,收藏以及删除新闻的一款IOS应用软件.它有着启动界面.登录界面,在输入正确的账号 ...

  5. IOS开发之常用第三方框架(完善中)

    IOS开发之常用第三方框架 AFNetworking:网络请求 SDWebImage:加载网络图片 MJRefresh:下拉刷新 MBProgressHUD/SVProgressHUD:加载提示框 M ...

  6. iOS开发API常用英语名词

    iOS开发API常用英语名词 0. indicating 决定 1.in order to 以便 2.rectangle bounds 矩形尺寸 3.applied 应用 4.entirety 全部 ...

  7. iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图

    iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图 使用ios9中的开关.滑块控件 开关和滑块也是用于和用户进行交互的控件.本节将主要讲解这两种控件. ios9开关 开关控件常用来控制某个功能的 ...

  8. 推荐爱码哥移动开发平台十大常用的原生UI控件

    imag.js是一种NativeScript形式的框架,它兼具 Web 应用的灵活和 Native 应用的高性能,可以使用 JavaScript 来开发 iOS 和 Android 原生应用.在 Ja ...

  9. 【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 编辑 Qt 桌面按钮控件 | 修改按钮文本 | 为按钮添加点击事件 | 系统调用 | 去掉系统调用命令窗口 )

    文章目录 一.添加按钮控件 二.修改按钮文本 三.为按钮添加点击事件 ( 弹出对话框 ) 四.为按钮添加点击事件 ( 打开记事本 ) 五.为按钮添加点击事件 ( 打开计算器 ) 六.去掉系统调用时弹出 ...

  10. ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性

    深入讲解控件的属性持久化(一) 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第 ...

最新文章

  1. ZOJ 2334 HDU 1512 Monkey King
  2. 作业收缴系统使用手册(自写开源小系统)
  3. 设计模式的理解:单例模式(Singleton)
  4. sql语句出错:Column count doesn't match value count at row 1
  5. Android 表单之 TextView(文本框)详解
  6. 财务数据图表分析,这些财务预算表模板免费用
  7. PHP高并发和大流量解决方案
  8. java面经大全,献给每一个努力过,在努力以及将要努力的人。goodlucky。2018-10-15开始更新
  9. 使用crash工具分析高通ramdump
  10. 动态规划----费氏数列
  11. 解决MAC用HDMI连接显示器就没声音问题
  12. git merge冲突解决
  13. 深度数据全方位解析:冰桶挑战---TOMsInsight 2014.08.20
  14. 【Linux基本知识】
  15. 一些noip模拟题一句话题解
  16. 树莓派 电脑通过界面远程控制
  17. 第7章第29节:四图排版:四张图片并列排版 [PowerPoint精美幻灯片实战教程]
  18. 关于一个非常nice的原生UI框架——layerUI
  19. 配置docker镜像的国内源
  20. vuemui框架_7个基于VUE移动端UI好用框架!

热门文章

  1. C++ emplace_back
  2. 计算机限制360打不开,360安全卫士软件突然打不开是什么情况?问题原因及解决方法...
  3. The eighth day
  4. 个人日记-电影《花木兰》观后感-20200913
  5. Android WebView播放视频flash(判断是否安装flash插件)
  6. 三星S5660刷机及Root
  7. 电脑一直跳出 不支持16位的应用程序该如何解决
  8. flv怎么转换成html5,快速教你如何将FLV转换MP4格式
  9. 零代码工具推荐 八爪鱼采集器
  10. MindSpore布道师招募计划,开启AI的信仰之跃