Xcode iOS开发:UIKit常用组件之按钮控件
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常用组件之按钮控件相关推荐
- iOS开发基础-常用组件(上)
目录 1.UILabel 2.UIScrollView(滚动视图) 3.UINavigationController(导航控制器) 4.UITableView(表格) 5.UIImageView(图像 ...
- Swift学习笔记笔记(七) UIKit常用组件的使用
一.实验目的: 1.掌握Cocoa程序的创建 2.掌握UILabel组件的使用 3.掌握UIButton组件的使用 4.掌握UITextField组件的使用 二.实验原理: 1.Cocoa应用程序框架 ...
- iOS开发中常用的方法
iOS开发中常用的方法 系统弹窗: 过期方法: UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"确认报价" ...
- 基于XCode IOS开发系统实现的新闻APP设计
一.项目概述 1.1 项目介绍 本次课程设计所实现的新闻阅读APP是基于XCode IOS开发系统上开发的一款可以查看,收藏以及删除新闻的一款IOS应用软件.它有着启动界面.登录界面,在输入正确的账号 ...
- IOS开发之常用第三方框架(完善中)
IOS开发之常用第三方框架 AFNetworking:网络请求 SDWebImage:加载网络图片 MJRefresh:下拉刷新 MBProgressHUD/SVProgressHUD:加载提示框 M ...
- iOS开发API常用英语名词
iOS开发API常用英语名词 0. indicating 决定 1.in order to 以便 2.rectangle bounds 矩形尺寸 3.applied 应用 4.entirety 全部 ...
- iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图
iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图 使用ios9中的开关.滑块控件 开关和滑块也是用于和用户进行交互的控件.本节将主要讲解这两种控件. ios9开关 开关控件常用来控制某个功能的 ...
- 推荐爱码哥移动开发平台十大常用的原生UI控件
imag.js是一种NativeScript形式的框架,它兼具 Web 应用的灵活和 Native 应用的高性能,可以使用 JavaScript 来开发 iOS 和 Android 原生应用.在 Ja ...
- 【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 编辑 Qt 桌面按钮控件 | 修改按钮文本 | 为按钮添加点击事件 | 系统调用 | 去掉系统调用命令窗口 )
文章目录 一.添加按钮控件 二.修改按钮文本 三.为按钮添加点击事件 ( 弹出对话框 ) 四.为按钮添加点击事件 ( 打开记事本 ) 五.为按钮添加点击事件 ( 打开计算器 ) 六.去掉系统调用时弹出 ...
- ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性
深入讲解控件的属性持久化(一) 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第 ...
最新文章
- ZOJ 2334 HDU 1512 Monkey King
- 作业收缴系统使用手册(自写开源小系统)
- 设计模式的理解:单例模式(Singleton)
- sql语句出错:Column count doesn't match value count at row 1
- Android 表单之 TextView(文本框)详解
- 财务数据图表分析,这些财务预算表模板免费用
- PHP高并发和大流量解决方案
- java面经大全,献给每一个努力过,在努力以及将要努力的人。goodlucky。2018-10-15开始更新
- 使用crash工具分析高通ramdump
- 动态规划----费氏数列
- 解决MAC用HDMI连接显示器就没声音问题
- git merge冲突解决
- 深度数据全方位解析:冰桶挑战---TOMsInsight 2014.08.20
- 【Linux基本知识】
- 一些noip模拟题一句话题解
- 树莓派 电脑通过界面远程控制
- 第7章第29节:四图排版:四张图片并列排版 [PowerPoint精美幻灯片实战教程]
- 关于一个非常nice的原生UI框架——layerUI
- 配置docker镜像的国内源
- vuemui框架_7个基于VUE移动端UI好用框架!
热门文章
- C++ emplace_back
- 计算机限制360打不开,360安全卫士软件突然打不开是什么情况?问题原因及解决方法...
- The eighth day
- 个人日记-电影《花木兰》观后感-20200913
- Android WebView播放视频flash(判断是否安装flash插件)
- 三星S5660刷机及Root
- 电脑一直跳出 不支持16位的应用程序该如何解决
- flv怎么转换成html5,快速教你如何将FLV转换MP4格式
- 零代码工具推荐 八爪鱼采集器
- MindSpore布道师招募计划,开启AI的信仰之跃