iOS-控件之间的继承
来源:互联网 发布:淘宝人工客服电话400 编辑:程序博客网 时间:2024/06/05 22:34
最近在写项目的时候感觉有些控件在使用的时候有些新的体悟,所以就想整理一下曾经用到的东西,如有不详之处,还请诸位多多指教,我们共同学习#^_^#
UIControl:控制类,触摸一个视图,执行某个方法
点击一个视图,触发一个事件。他是一个可以带有触发事件的视图
主要内容:
- UIControl的子类
- UIControl
- 响应事件
- 封装
- 按钮UIButton
一、UIControl的子类
UIButton:按钮
UISwitch:哪个,开关
UISegmentedControl:分段选择控件
UISlider滑竿:(例如:音量的调节)
UITextField:文本框,是文本输入的控件
UIPageControl:翻页,页面控制(五个页面的切换。。。。。)
这些视图都可以点击触发事件
UIControl的常用属性
- enabled启用,激活。是用来设置是否可以启用触发事件,他是BOOL类型默认值是YES,如果设置成NO,就是禁用这个视图的触发事件
- selected:选中(状态)。是不是选中了这个控件。默认值是NO。
- highlighted:高亮(状态)。默认值是NO。
二、重要方法
给视图添加响应事件的方法
-(void)addTarget:(nullable id)target action:(SEL)actionforControlEvents:(UIControlEvents)controlEvents;
- Target:目标。指定一个目标,让这个目标去调用方法。
- action:行动。要让这个目标做什么事
- SEL:运行时->@selecter()他是一个选择者,右脚方法选择器,作用:用来选择一个方法
- UIControlEvents:控制事件、执行行动的方式
三、控制事件
UIControlEventTouchDown *****
单点触摸按下事件:用户点触屏幕,或者又有新手指落下的时候。
UIControlEventTouchDownRepeat
多点触摸按下事件,点触计数大于1:用户按下第二、三、或第四根手指的时候。
UIControlEventTouchDragInside ****
当一次触摸在控件窗口内拖动时。
UIControlEventTouchDragOutside
当一次触摸在控件窗口之外拖动时。
UIControlEventTouchDragEnter
当一次触摸从控件窗口之外拖动到内部时。
UIControlEventTouchDragExit
当一次触摸从控件窗口内部拖动到外部时。
UIControlEventTouchUpInside ******
所有在控件之内触摸抬起事件。
UIControlEventTouchUpOutside
所有在控件之外触摸抬起事件(点触必须开始与控件内部才会发送通知)。
UIControlEventTouchCancel ******
所有触摸取消事件,即一次触摸因为放上了太多手指而被取消,或者被上锁或者电话呼叫打断。
UIControlEventTouchChanged
当控件的值发生改变时,发送通知。用于滑块、分段控件、以及其他取值的控件。你可以配置滑块控件何时发送通知,在滑块被放下时发送,或者在被拖动时发送。
UIControlEventEditingDidBegin
当文本控件中开始编辑时发送通知。
UIControlEventEditingChanged
当文本控件中的文本被改变时发送通知。
UIControlEventEditingDidEnd
当文本控件中编辑结束时发送通知。
UIControlEventEditingDidOnExit ****
当文本控件内通过按下回车键(或等价行为)结束编辑时,发送通知。
UIControlEventAlltouchEvents
通知所有触摸事件。
UIControlEventAllEditingEvents
通知所有关于文本编辑的事件。
UIControlEventAllEvents
通知所有事件。
四、封装
1、封装一个弹出框这种视图,用户可以传图想显示的内容以及弹出框消失的时间
(一、)封装按钮,有提示文字,并且可以点击
提示文字:UILable
可以点击:UIControl
UIButton:是一个按钮,是系统封装好的UIControl。可以再里面放置文字图片以及设置文字图片相关的内容,同时也可以触发事件。
- 初始化
有一个类方法
+(instancetype)buttonWithType:(UIButtonType)buttonType;
UIButtonType
定制
UIButtonTypeCustom
系统默认的样式
UIButtonTypeSystem
UIButtonTypeDetailDisclosure:显示详细信息的样式
UIButtonTypeInfoLight:高量
UIButtonTypeInfoDark,:灰暗
UIButtonTypeContactAdd:+
UIButtonTypeRoundedRect:= UIButtonTypeSystem, // Deprecated, use UIButtonTypeSystem instead
UIControlState:状态
UIControlStateNormal:普通状态
UIControlStateHighlighted:高亮
UIControlStateDisabled:取消禁用状态
UIControlStateSelected:选中
UIButton *butt = [UIButtonbuttonWithType:UIButtonTypeCustom];
butt.frame =CGRectMake(200,40,play.size.width/10, play.size.height/10);
/*
*默认情况下,当按钮高亮的情况下,图像的颜色会被画深一点,如果这下面的这个属性设置为no,
*那么可以去掉这个功能
*/
butt.adjustsImageWhenHighlighted= NO;
/*跟上面的情况一样,默认情况下,当按钮禁用的时候,图像会被画得深一点,设置NO可以取消设置*/
butt.adjustsImageWhenDisabled= NO;
/*下面的这个属性设置为yes的状态下,按钮按下会发光*/
butt.showsTouchWhenHighlighted= YES;
// 给按钮设置背景图片
UIImage *play = [UIImageimageNamed:@"start.png"];
UIImage *pause = [UIImageimageNamed:@"Pause.png"];
[butt setImage:playforState:UIControlStateNormal];
[butt setImage:pauseforState:UIControlStateSelected];
// 当点击时有高亮
butt.showsTouchWhenHighlighted =YES;
// butt.titleLabel:but上的lable
butt.backgroundColor = [UIColorgreenColor];
/*
// 普通状态下的标题
// [butt setTitle:@"登录"forState:UIControlStateNormal];
// 选中状态的标题
// [butt setTitle:@"正在登录"forState:UIControlStateSelected];
// 设置标题的字体颜色
// [butt setTitleColor:[UIColor purpleColor]forState:UIControlStateHighlighted];
*/
[butt addTarget:selfaction:@selector(loginTo:)forControlEvents:UIControlEventTouchUpInside];
/*
// 给按钮设置背景图片可以同时显示上面的标题
//-(void)setBackgroundImage:(nullable UIImage *)imageforState:(UIControlState)state
[self.window addSubview:butt];
// titleForState:获得按钮某个状态的标题
// titleColorForState:获得按钮某个状态的文字颜色
// titleShadowColorForState:获得按钮某个状态的标题阴影颜色
// imageForState:通过按钮的状态找到按钮这个状态的图片
// backgroundImageForState:获得按钮某个状态的背景图片
// imageForState通过按钮的状态找到按钮此时状态上面的图片
// UIImage是一张图片 UIImageView是一个视图*/
UIImage *getImage = [but imageForState:UIControlStateSelected];
//
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(200,200,100,100)];
imageView.image = getImage;
[self.windowaddSubview:imageView];
-(void)loginTo:(UIButton*)sender{
// 通过设置selected状态来更新按钮上面的标题
sender.selected = sender.selected!=YES?YES:NO;
}
-------------------------------------------
// [self xxx];等3秒再执行
[selfperformSelector:@selector(removeAlertView)withObject:nilafterDelay:3];
其他控件会尽快整理出来的。
- iOS-控件之间的继承
- IOS之UI控件之间的继承关系
- iOS开发中,各个UI控件之间的继承关系
- iOS之UI随笔-UIKit框架控件之间的继承关系
- ios中UI控件的继承关系
- IOS开发各类之间的继承关系图
- 接口之间的继承
- JS继承之间的
- java---- 类之间的继承
- 关于继承之间的关系
- js对象之间的继承
- c++类之间的继承
- 集合之间的继承关系
- IOS开发(33)之Cocoa框架类之间的继承关系
- IOS开发类之间的继承关系 两张树状图片
- 公有继承、私有继承和保护继承之间的对比
- IOS类继承关系图 && 原生控件
- iOS 协议的继承
- HTML5笔试题20道
- DOSBOX运行QBASIC和Turbo PASCAL
- 读《光荣与梦想》四,The Glory and The Dream
- React初步学习
- php中的单引号(int类型和string类型的转换)
- iOS-控件之间的继承
- 交换Button中图片与文字左右位置
- android开发游记:广告轮播器无限循环滚动 首尾无缝切换解决方案
- PHP面向对象的三大特性之封装性
- 抽象类与接口的区别
- matplotlib对ColorBar的处理似乎优于matlab
- Java中合成和继承的区别
- 如何通过网络连接进行ADB调试
- 关于EMC EMI EMS 通俗易懂的语言让你彻底搞清楚