UIKit框架(18)UIButton和UITextField

UIButton按钮控件和UITextField输入框控件,是UI开发中比较常用的两个控件

和UILabel、UIImageView、UISwitch相比,用法相对比较丰富

  • UIButton的四个状态

UIButton有四个状态:

//正常状态
UIControlStateNormal 
//高亮状态:当按钮被按下时的状态
UIControlStateHighlighted 
//选中状态:通过UIButton对象的selected属性进行切换
UIControlStateSelected 
//禁用状态:通过UIButton对象的enable属性进行切换,不能接受用户的点击
UIControlStateDisabled

如果设置了正常状态下的文字、图片的数据,其余三个状态也是用这些数据

高亮状态,颜色加深;禁用状态,颜色变灰

也可以分别设置每一个状态下的文字、图片等数据

  • UIButton的子视图

UIButton内部包含三个子视图:

一个UILabel文字标签(蓝色)

一个UIImageView图片控件(默认在文字左边)(橘红色)

一个UIImageView背景图片空间(在文字和图片空间的下面)(***)

其中后两个子视图,可以不显示数据

设置数据必须指明是哪个状态下:

- (void)setTitle:(NSString *)title forState:(UIControlState)state
- (NSString *)titleForState:(UIControlState)state
- (void)setImage:(UIImage *)image forState:(UIControlState)state
- (UIImage *)imageForState:(UIControlState)state
- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state
- (UIImage *)backgroundImageForState:(UIControlState)state
  • UIButton子类

按钮是界面中最常出现的元素,为了定制各种想要的按钮效果,经常实现UIButton子类

可以实现以下效果:

1)UIButton属性的设置封装到构造方法中

2)去掉某些自带效果

比如去掉高亮状态时的阴影效果,重写highlighted属性的setter方法:什么也不做

3)修改该文字标签和图片的相对位置

重写以下方法:

- (CGRect)contentRectForBounds:(CGRect)bounds
- (CGRect)imageRectForContentRect:(CGRect)contentRect
- (CGRect)titleRectForContentRect:(CGRect)contentRect
  • UITextField上的各种子视图

右侧清除按钮:

@property(nonatomic) UITextFieldViewMode clearButtonMode
typedef enum {
   UITextFieldViewModeNever,
   UITextFieldViewModeWhileEditing,
   UITextFieldViewModeUnlessEditing,
   UITextFieldViewModeAlways 
} UITextFieldViewMode;

左右侧视图,通常放置按钮

@property(nonatomic, strong) UIView *leftView
@property(nonatomic, strong) UIView *rightView

左右侧视图显示模式

@property(nonatomic) UITextFieldViewMode leftViewMode
@property(nonatomic) UITextFieldViewMode rightViewMode
  • UITextField的自定义键盘

通过inputView修改键盘

@property(readwrite, strong) UIView *inputView

通常是设置为各种选择视图,如:

textField.inputView = [[UIDatePicker alloc] init];

通过inputAccessoryView设置键盘上的工具栏

@property(readwrite, strong) UIView *inputAccessoryView

工具栏上一般放置各种按钮,如完成、下一个、上一个等

UIToolBar * toolBar = [UIToolBar alloc] init];
textField.inputAccessoryView = toolBar;
toolBar.frame = CGRectMake(0, 0, 375, 20);
//toolBar添加按钮
//...
时间: 2024-10-11 17:16:51

UIKit框架(18)UIButton和UITextField的相关文章

UIKit框架之UIButton详解

UIKit框架是iPhone应用程序开发中最基本的框架,也是用得最多.最重要的框架,今天要和大家分享的就是UIKit中的UIButton相关知识,一起来看看吧. 1.实例化: 1.1.init方式: 1 UIButton *button = [[UIButton alloc] initWithFrame:rect]; 1.2.类方法方式: 1 UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 其中按钮类型枚

UIkit框架之UIbutton的使用

1.UIbutton的继承关系:UIcontroller:UIview:UIresponder:NSObject: 2.添加按钮的步骤: (1)创建按钮的时候首先设置类型 (2)添加标题或者图片,设置大小来适合按钮内的内容 (3)为这个按钮链接一个或者多个动作方法 (4)在界面设置按钮的布局来控制它的大小,位置 (5)提供有用的信息和局部字符串 3.按钮的类型有: (1)UIButtonTypeCustom(没有按钮类型), (2) UIButtonTypeSystem(圆角矩形), (3)UI

UIKit 框架之UIButton

列举几个稍微难点的属性,其他的方法属性都好理解,可以参照UIButton.h // // ViewController.m // UIButton // // Created by City--Online on 15/5/19. // Copyright (c) 2015年 XQB. All rights reserved. // #import "ViewController.h" @interface ViewController () @property(nonatomic,s

UIKit框架各个类的简介

1.UIAcceleration: 被叫做加速事件的一个UIAcceleration类的实例是用来代表即时的三维加速数据.为了接收重力加速度,要注册一个应用应用程序作为一个共享UIAccelerater对象的委托对象(参考UIAcceleromete类). 2. UIAccelerater: UIAccelerater类可以让你的寄存器接收到从板载硬件上得到的加速相关数据.当设备移动时,它的硬件能够报告沿主线在三维空间中的线性加速度变化.你可以利用这些数据来检测器件的电流方向和该方向的瞬时变化.

iOS UIKit框架

1. 简介: UIKitk框架提供一系列的Class(类)来建立和管理iPhone OS应用程序的用户界面( UI )接口.应用程序对象.事件控制.绘图模型.窗口.视图和用于控制触摸屏等的接口.(PS1: 可以认为是操纵界面的一个API库)(PS2: UIKit框架是用在iOS平台上与之对应的是MAC OS X上的Application Kit,二者是姐妹框架,作用和目的没啥太大区别(我没有说实现目的的过程也一样),表混淆了) 2. 框架的入口: #import <UIKit/UIKit.h>

iOS UIKit 框架 346 篇文档分类整理 - 预告

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 当前正在进行的是 "iOS Foundation 框架 224 篇相关文档分类整理",量很大,但会根据实际开发中的使用频繁程序

UIKit框架(2)框架简介

UIKit框架 什么是框架? 简单来说,就是其他攻城狮开发完成的代码,包括库文件.头文件等,这些文件中的API我们可以拿过来使用 UIKit框架是干什么的? 提供创建基于触摸用户界面的类 包括:屏幕上的绘制机制.捕捉事件.管理组织复杂的UI元素 UIKit中最重要的两个类? 1)UIView:所有可以看到的组件/控件/视图的父类 如:UIButton按钮.UILabel标签.UITextField输入框.UIImageView图片视图等 2)UIViewController:所有控制器的父类,负

UIKit框架使用总结--看看你掌握了多少

一.经常使用的,基本就是每次项目迭代都需要使用的 UIView.UILabel.UIImage.UIColor.UIFont.UIImageView.UITextField.UIButton. UIScrollView.UITableView.UITableViewCell.UICollectionView.UICollectionViewCell.UITextView. UIViewController 二.偶尔使用,或者说不是每次都要敲出来的 1.功能专用 UIPickerView(数据选择

iOS开发概述UIkit动力学,讲述UIKit的Dynamic特性,UIkit动力学是UIkit框架中模拟真实世界的一些特性。

转发:http://my.oschina.net/u/1378445/blog/335014 iOS UIKit动力学 Dynamics UIAttachmentBehavior 实现iMessage风格 目录[-] UIDynamicAnimator UIAttachmentBehavior(吸附) UIPushBehavior(推动) UIGravityBehavior(重力) UICollisionBehavior(碰撞) UISnapBehavior(捕捉) UICollectionVi

UIKit&#160;框架之UIView二

下面这些都是UIView一些基本的东西,具体的可以参考UIKit 框架之UIView一博客 一.自定义一个View // // MyView.m // UIView // // Created by cyw on 15-5-17. // Copyright (c) 2015年 cyw. All rights reserved. // #import "MyView.h" @implementation MyView - (id)initWithFrame:(CGRect)frame {