##DAY5 UIControl及其子类

#pragma mark ———————UIControl———————————

UIControl初识:

1)UIControl是有控制功能的视图(比如UIButton、UISlider、UISegmentedControl等)的父类

2)只要跟控制有关的控件都是继承于该类

3)UIControl这个类通常我们并不直接使用,而是使用其子类

事件响应的三种形式:基于触摸、基于值、基于编辑

注意:

UIBUtton基于触摸,UITextField基于编辑,其他继承自UIControl的基于值

Control的事件处理:

//当控件之内触摸抬起时触发

UIControlEventTouchUpInside

//当控件的值发⽣变化时。⽤于滑块、分段控件等控件。

UIControlEventValueChanged

//⽂本控件中开始编辑时

UIControlEventEditingDidBegin

//⽂本控件中的⽂本被改变

UIControlEventEditingChanged

//⽂本控件中编辑结束时

UIControlEventEditingDidEnd

UIControl常用方法:

1)添加一个事件

- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;

2)移除一个事件

- (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;

#pragma mark ———————UISegmentedControl———————————

UISegmentedControl的属性和方法:

属性:

frame 布局

selectedSegmentIndex 设置默认被选中的分段

tintColor 设置标签风格颜色,注意:这个风格颜色会影响标签的文字和图片

momentary 点击后是否恢复原样,默认NO,分段控件的默认行为是,一旦按钮被选中就一直保持,直到另外一个按钮被选中为止。你可以改变这种默认的行为,变成按钮按下后很快就自动释放

segmentedControlStyle 分段控件的样式,iOS 7.0以后无效

方法:

initWithItems: 独有的初始化方法,用来创建多个分段,是一个数组

selectedSegmentAtIndex: 指定被选中的分段,默认情况下,除非你指定,否则不会有任何片段被选中。

setTitle:forSegmentAtIndex: 为指定下标的分段设置图片

insertSegmentWithTitle:atIndex:animated: 在指定位置下插入分段

removeSegmentAtIndex:animated: 删除指定分段

removeAllSegments 删除所有分段

addTarget:action:forControlEvents: 添加事件

/*

注意:controlEvent为UIControlEventValueChanged

原因:分段控件本质上通过数据管理分段,所以使用valueChanged属性来触发事件,即数组下标的变化

*/

注意:图像不会自动调整大小,图片多大就会原生地显示多大,所以你要通知做图的美工大小要精确。

#pragma mark ———————UIpageControl———————————

初始化方法:

initWithFrame: 高度设置无效

属性:

numberOfPages 页面数目

currentPage 当前页数 当前页数,默认第一页会被选中。页面索引从 0 开始。

hidesForSinglePage 默认情况下,即使只有一个页面,指示器也会显示进来。如果要在仅有一个页面的情况下隐藏指示器,可以将hideForSinglePage 的值设为 YES。

defersCurrentPageDisplay 延迟更新当前指示器当前指示页,必须调用控件的[myPageControl updateCurrentPageDisplay]; 来更新当前页

pageIndicatorTintColor 未选中页面圆点的颜色

currentPageIndicatorTintColor 当前页面的圆点的颜色

sizeForNumberOfPages 通过页数得到控制器大小, 这个属性用于页数会变化的情况下进行大小动态处理,返回一个CGSize类型的值

显示控件:addSubview:

触发事件:

addTarget:action:forControlEvents:

注意:当用户点触分页控件时,会产生一个 UIControlEventVakueChanged 事件

##DAY5 UIControl及其子类的更多相关文章

  1. iOS学习24之UIControl及其子类

    1. UIControl初识 1> 概述 UIControl是有控制功能的视图( 如UIButton.UISlider.UISegmentedControl等)的父类 只要跟控制有关的控件都是继 ...

  2. UI基础:UIControl及其子类

    UISegmentedControl  UISegmentedControl 是iOS中的分段控件 每个segment 都能被点击,相当于集成了若干个button. 通常我们会点击不同的segment ...

  3. UIControl的子类UISwitch, UISegmentedCntrol, UIPageControl详解

    - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...

  4. iOS开发~视图(UIView)与控件(UIControl)

    1.UIView类 1.什么是视图 看得见的都是视图 2.什么是控件 一种特殊的视图,都是UIControl的子类,不仅具有一定的显示外观,还能响应高级事件,与用户交互.严格意义上UILabel不是控 ...

  5. 用UIControl封装Button

    用UIControl封装Button 效果 说明 UIControl在处理超出触摸范围的触摸事件时有bug 源码 基础类 // // BaseControl.h // BaseControl // / ...

  6. iOS:UIView、UIControl、UIButton、UILabel简单的属性和方法常识

    常见属性和方法 一 .UIVIew 常见属性 1.frame 位置和尺寸(以父控件的左上角为原点(0,0)) 2.center 中点 (以父控件的左上角为原点(0,0)) 3.bounds 位置和尺寸 ...

  7. iOS总结_UI层自我复习总结

    UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...

  8. iOS系列 基础篇 09 开关、滑块和分段控件

    iOS系列 基础篇 09 开关.滑块和分段控件 目录: 案例说明 开关控件Switch 滑块控件Slider 分段控件Segmented Control 1. 案例说明 开关控件(Switch).滑块 ...

  9. 【原】iOS动态性(五)一种可复用且解耦的用户统计实现(运行时Runtime)

    声明:本文是本人 编程小翁 原创,转载请注明. 为了达到更好的阅读效果,强烈建议跳转到这里查看文章. iOS动态性是我的关于iOS运行时的系列文章,由浅入深,从理论到实践.本文是第5篇.有兴趣可以看看 ...

随机推荐

  1. 转:web前端面试题合集 (Javascript相关)(js异步加载详解)

    1. HTTP协议的状态消息都有哪些? 1**:请求收到,继续处理2**:操作成功收到,分析.接受3**:完成此请求必须进一步处理4**:请求包含一个错误语法或不能完成5**:服务器执行一个完全有效请 ...

  2. 强烈推荐visual c++ 2012入门经典适合初学者入门

    强烈推荐visual c++ 2012入门经典适合初学者入门 此书循序渐进,用其独特.易于理解的教程风格来介绍各个主题,无论是编程新手,还是经验丰富的编程人员,都很容易理解. 此书的目录基本覆盖了Wi ...

  3. Day1_PHP快速入门

    本人知识背景:行业软件C/C++开发两年经验,了解PHP, 所以学习日志偏向记录PHP相对于C的特性 测试环境:EasyPHP13.1 Day 1 学习时间:3小时 1. HTML触发PHP HTML ...

  4. Openstack service default port

    Block Storage (cinder) 8776 publicurl and adminurl Compute API (nova-api) 8773 EC2 API 8774 openstac ...

  5. saiku中多cube排序问题

    如题,一个schema中如果有多个cube(常有),那cube之间是如何排序显示的? 我们看一下OlapMetaExplorer.java文件的getConnection方法,其中有一行 Collec ...

  6. Java面试题之四

     十六.运行时异常与一般异常有何异同 Java提供了两类主要的异常:runtime exception和checked exception. 1.checked exception:这种异常也就是我们 ...

  7. URL中增加BASE64加密的字符串引起的问题(java.net.MalformedURLException:Illegal character in URL)

    序 昨天在做一个 Demo 的时候,因为是调用第三方的接口,採用的是 HTTP 的通信协议,依照文档上的说明,须要把參数进行加密后增加到 URL 中.可是,就是这个看似普普通通的操作,却让我着实费了非 ...

  8. SQL学习之分组数据Group by

    简介:"Group By"根据字面上的意思理解,就是根据"By"后面指定的规则对数据进行分组(分组就是将一个数据集按照"By"指定的规则分成 ...

  9. JavaScript之childNodes属性、nodeType属性学习

    1.childNodes属性:在一颗节点树上,childNodes属性可以用来获取任何一个元素的所有元素,它是一个包含这个元素所有子元素的数组. <body> <script typ ...

  10. Java String.indexOf() 函数用法小结

    1. indexOf的参数是 String,  startIndex: Number; indexOf的返回值为int, 2. Function indexOf 包含如下几个格式:1). Strng. ...