Swift基础之常用的UI控件(一)

有一定iOS基础的小伙伴们一定知道,在开发的过程中UI控件是必不可少的。那么在swift中UI控件都是怎么创建和使用的呢?
在这篇文章中我会介绍有关UILabel、UIButton、UITextField、UISwitch、UISlider、UIToolbar、UIProgressView和UIAlertView等常用的控件的使用。

一、UILabel(文本标签)

UILabel主要是用来显示简短的文本。常用属性如下:

    //创建一个文本标签并设置它的frame
    let label = UILabel(frame: CGRect(x:10, y:50, width:200, height:200))
    //设置文本标签的字体颜色为黑色
    label.textColor = UIColor.black
    //设置文本标签的文字
    label.text = "我是萌萌哒"
    //设置文本标签的文本显示位置为居中,还可以居左(Left)、居右(Right)、合乎情理的(Justified)、自然的(Natural)
    label.textAlignment = .center
    //自适应字体大小
    label.adjustsFontSizeToFitWidth = true
    //设置字体大小
    label.font = UIFont.systemFont(ofSize: 12)
    label.font = UIFont.boldSystemFont(ofSize: 12)
    //文本行数,为0就是自动换行
    label.numberOfLines = 0
    label.lineBreakMode = .byCharWrapping
    //lineBreakMode属性的枚举下面会详细介绍
    //是否能和用户交互
    label.isUserInteractionEnabled=true
    //文字是否可变,默认值是true
    label.isEnabled=true;
    //设置阴影颜色和偏移量
    label.shadowColor = UIColor.blue
    label.shadowOffset = CGSize(width:0.5, height:0.5)
    //设置是否高亮和高亮颜色
    label.isHighlighted = true
    label.highlightedTextColor = UIColor.red

    // lineBreakMode属性
    public enum NSLineBreakMode : Int {
       case byWordWrapping // Wrap at word boundaries, default
       case byCharWrapping // Wrap at character boundaries
       case byClipping // Simply clip
       case byTruncatingHead // Truncate at head of line: "...wxyz"
       case byTruncatingTail // Truncate at tail of line: "abcd..."
       case byTruncatingMiddle // Truncate middle of line:  "ab...yz"
   }

二、UIControl-所有具有事件处理控件的父类

控件主要响应的3中事件

  • 基于触摸的事件
  • 基于值的事件
  • 基于编辑的事件
    在UIControl中常用的事件有:UIControlEventTouchUpInside 如按钮的点击事件、UIControlEventValueChanged 如进度条拖动。

1.属性

  • enable
    控件默认是启动的。要禁用控件,可以将enable设置成false,这将导致控件忽略任何触摸事件。被禁用后,控件还可以用不同的方式显示自己,比如变成灰色不可用。虽然是由控件的子类完成的,这个属性却存在于UIControl中。

      control.enabled = true
    
  • selected
    当用户选中控件时,UIControl类会将其selected属性设置为YES。子类有时使用这个属性来让控件选择自身,或者来表现不同的行为方式。

     control.selected = true
    
  • contentVerticalAlignment
    控件如何在垂直方向上布置自身的内容。默认是将内容顶端对其,对于文本字段,可能会改成UIControlContentVerticalAlignmentCenter。

    control.contentVerticalAlignment = .bottom
    control.contentVerticalAlignment = .center
    control.contentVerticalAlignment = .fill
    control.contentVerticalAlignment = .top
    
  • contentHorizontalAlignment
    水平对齐方式

    control.contentHorizontalAlignment = .bottom
    control.contentHorizontalAlignment = .center
    control.contentHorizontalAlignment = .fill
    control.contentHorizontalAlignment = .top
    

2.事件通知

  • UIControlEventTouchDown
    单点触摸按下事件:用户点触屏幕,或者又有新手指落下的时候。
  • UIControlEventTouchDownRepeat
    多点触摸按下事件,点触计数大于1:用户按下第二、三、或第四根手指的时候。
  • UIControlEventTouchDragInside
    当一次触摸在控件窗口内拖动时。
  • UIControlEventTouchDragOutside
    当一次触摸在控件窗口之外拖动时。
  • UIControlEventTouchDragEnter
    当一次触摸从控件窗口之外拖动到内部时。
  • UIControlEventTouchDragExit
    当一次触摸从控件窗口内部拖动到外部时。
  • UIControlEventTouchUpInside
    所有在控件之内触摸抬起事件。
  • UIControlEventTouchUpOutside
    所有在控件之外触摸抬起事件(点触必须开始与控件内部才会发送通知)。
  • UIControlEventTouchCancel
    所有触摸取消事件,即一次触摸因为放上了太多手指而被取消,或者被上锁或者电话呼叫打断。
  • UIControlEventTouchChanged
    当控件的值发生改变时,发送通知。用于滑块、分段控件、以及其他取值的控件。你可以配置滑块控件何时发送通知,在滑块被放下时发送,或者在被拖动时发送。
  • UIControlEventEditingDidBegin
    当文本控件中开始编辑时发送通知。
  • UIControlEventEditingChanged
    当文本控件中的文本被改变时发送通知。
  • UIControlEventEditingDidEnd
    当文本控件中编辑结束时发送通知。
  • UIControlEventEditingDidOnExit
    当文本控件内通过按下回车键(或等价行为)结束编辑时,发送通知。
  • UIControlEventAlltouchEvents
    通知所有触摸事件。
  • UIControlEventAllEditingEvents
    通知所有关于文本编辑的事件。
  • UIControlEventAllEvents
    通知所有事件。

这篇文章就先介绍到这里啦,在下一篇文章中我会继续介绍UIButton、UITextField、UISwitch、UISlider、UIToolbar、UIProgressView和UIAlertView等常用的控件的使用哦。谢谢大家来看我的文章,请多指教哦。😁

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271

推荐阅读更多精彩内容

  • 一.UIView属性 1.alpha 设置视图的透明度.默认为1. //完全透明 view.alpha=0; //...
    奋斗ing0310阅读 1,779评论 0 2
  • UIKit提供了一组控件:UISwitch开关、UIButton按钮、UISegmentedControl分段控件...
    浪漫紫薇星阅读 1,280评论 0 0
  • 好奇触摸事件是如何从屏幕转移到APP内的?困惑于Cell怎么突然不能点击了?纠结于如何实现这个奇葩响应需求?亦或是...
    Lotheve阅读 54,784评论 51 596
  • UIControl是UIView的子类,当然也是UIResponder的子类。UIControl是诸如UIButt...
    小蘑菇2阅读 1,975评论 0 0
  • 昨天看了本书,讲的是体内蛋白质摄入不够影响神经质,进而影响 情绪,所以要开始喝牛奶吃鸡蛋了,最讨厌的东西,哎
    NO_LowB阅读 155评论 0 0