iOS14+Swift5.x+Xcode12学习笔记(3)——可视化控件

UIKit坐标系

以视窗的左上角为坐标原点,向右增加x的值,向下增加y的值。每个控件有两个和坐标与控件大小有关的属性,分别是frame和bounds。这两个属性中都包含了origin和size结构体。结构体size中包含width和height两个属性,分别记录了控件的宽度和高度,frame和bounds中的size属性是一样的。结构origin包含x和y两个属性,分别记录了控件的x坐标和y坐标。在frame中origin存储的值是控件左上角到父容器(superview)的左上角的举例,而bounds中origin存储的值一般都是0。

标签(UILabel)

用来显示文字,通过text属性可以获取Label控件上的文字。可以为Label设置具有丰富样式的文字(推荐一个第三方库BonMot,支持图文混排,自定义格式字符串,封装成类CSS样式非常方便)

  • numberOfLines属性控制Label可显示的行数,如果不限制行数设置为0。
  • Autoshrink可以设置当文字超过Label的宽度时,自动缩小字体,防止文字结尾出现「…」符号,经常使用在支持多国语言的APP上。

按钮(UIButton)

按钮主要用于与用户交互,本身有四种状态:预设状态(default)、手指点下但未放开(hightlighted)、被选择(selected)、禁用(disabled)。

  • setImage(image:for:)设置按钮位于各种状态下的图片。
  • setBackgroundImage(image:for:)设置按钮背景图片。
  • backgroundColor属性设置按钮背景颜色。

分段控制器(UISegmentedControl)

用来显示像页签(可以理解为翻页器)一样的页面,当使用者选择不同区段的按钮时,通过IBAction函数就可以知道使用者选择了哪个区段。

@IBAction func click(_sender: UISegmentedControl) {
   
	let index = sender.selectedSegmentIndex//获取索引,最左侧为0
	let title = sender.getForSegment(at: index)!//取得分段上的标题文字
}

文字框(UITextField)

用于接受用户的输入,不论使用者输入什么内容,都以String类型存储在文字框的text属性中。

  • 第一响应者状态(first responder),当文字框变为第一响应者时,虚拟键盘会被呼出,这时可以在虚拟键盘上打字输入到文本框中。可以通过在文本框上点击或调用becomeFirstResponder()函数来使文本框成为第一响应者。如果想关闭虚拟键盘,可以调用resignFirstResponder()函数。
  • 设置「Clear Button」可以让文字框出现删除按钮,可以删除已经输入的文字。
  • iPad上的虚拟键盘自带关闭按钮,但是iPhone上没有。可以给虚拟键盘添加一个工具列用于用户手动关闭键盘;或在文本框所在ViewController中重写
    touchesBegan(_:with:)函数,在这个函数中结束View的编辑状态或调用每一个文字框的resignFirstResponder()函数。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
   
	view.endEditing(true)
	//如果不需要过度动画,使用以下写法。
	UIView.animate(withDuration: 0) {
   
		self.view.endEditing(true)
	}
}

滑块(UISlider)

用来让使用者通过滑动的方式设置数值。
通过valueChanged(_:)函数监听值的变化。(以拖线函数举例)

@IBAction func valueChanged(_ sender: UISlider) {
   
	print(sender.value)
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值