总结:
文本类控件: UILabel,UITextField,UITextView
按钮类控件: UIButton,UISwitch,UISegmentControl
调节类控件: UISlider,UIStepper
选择,警告类控件: UIDatePick, UIPickView, UIAlertView
容器类控件: UIImageView, UIScrollView
指示类控件: UIPageControl, UIProgressView,UIAcitcityIndicator
控件使用步骤:
a 初始化控件,设置位置,.........
b 加载到视图,
c 释放
View属性:
文本类控件
UILabel 标签:显示文本
eg: baselineAdjustment 设置基线位置(只有1行文本时才有效)
numberOfLines 设置显示行数(0表示不限)
lineBreakMode 设置超出内容宽度时的模式
UITextField:用于文本的输入,支持单行
eg : //回收键盘:设置<UITextFieldDelegate>
-( BOOL )textFieldShouldReturn:( UITextField *)textField
{
[textField resignFirstResponder ]; // 撤销第一响应
return YES ;
}
UITextView:用于文本的输入,支持多行
eg: // 回收键盘:加按钮键盘来辅助
- ( IBAction )button:( UIButton *)sender
{
[ self . textView resignFirstResponder ]; // 撤销第一响应
}
按钮类控件
UIButton 按钮:
一般情况下 UIButton是不用实例化的, 通过UIButton类提供的工厂方法来获得实例, 工厂方法返回的实例是Autorelease类型的,不需要释放内容。
eg: // addTarget 设置点击按钮
[button addTarget :对象 action : @selector (实例方法) forControlEvents : UIControllerEventTouchUpInside ];
UISwitch 开关控件:
eg: 高度默认自身的
调节类控件:UISlider,UIStepper
UISlider 滚动条:
eg: 高度默认自身的
选择,警告类控件:UIDatePick, UIPickView, UIAlertView
UIDatePicker 日期选择器:
eg: //获取UIDatePicker里的日期
NSDate *date = self . dataPicker . date ;
//创建时间格式
NSDateFormatter *formatter = [[ NSDateFormatter alloc ] init ];
[formatter setDateFormat : @"yyyy-MM-dd hh-mm-ss" ];
NSString *selectDate = [formatter stringFromDate :date];
self . label . text = selectDate;
UIPickerView自身不存储数据的,它的数据存储在它的委托中
<UIPickerViewDataSource> :
eg: 高度默认自身
eg: // 设置UIPickerView的列数
-( NSInteger )numberOfComponentsInPickerView:( UIPickerView *)pickerView
{
return 整数 ;
}
//设置每列的行数
-( NSInteger )pickerView:( UIPickerView *)pickerView numberOfRowsInComponent:( NSInteger )component
{
if(component == 0) //第一列
{
return 3;
}
return 5 //第二例
}
<UIPickerViewDelegate>设置数据
eg : // 设置行的内容
-( NSString *)pickerView:( UIPickerView *)pickerView titleForRow:( NSInteger )row forComponent:( NSInteger )component
{
return 内容;
}
// 设置选中内容到 label
-( void )pickerView:( UIPickerView *)pickerView didSelectRow:( NSInteger )row inComponent:( NSInteger )component
{
self.myLayer.text = 内容;
}
UIActionSheet操作表
警告:alertView:
eg:
- ( IBAction )alertClick:( id )sender
{
UIAlertView *alert = [[ UIAlertView alloc ] initWithTitle : @"YES" message : @"Are you sure ?" delegate : self cancelButtonTitle : @"NO" otherButtonTitles : @"test1" , nil ];
[alert show ]; //将UIAlertView显示出来
}
//delegate 设置点击后的调用
-( void )alertView:( UIAlertView *)alertView clickedButtonAtIndex:( NSInteger )buttonIndex
{
NSLog ( @"%d" ,buttonIndex); //结果从上到下为1~n,最后一个为0
}
从底部弹出 ActionSheet 组件:
eg:
- ( IBAction )actionClick:( id )sender
{
UIActionSheet *sheet = [[ UIActionSheet alloc ] initWithTitle : @" 确认购买 " delegate: self cancelButtonTitle : @" 取消购买 " destructiveButtonTitle : @" 销毁 " otherButtonTitles: @"test11" , nil ];
[sheet showInView : self . view ]; // 显示
}
//delegate 设置点击后的调用
-( void )actionSheet:( UIActionSheet *)actionSheet clickedButtonAtIndex:( NSInteger )buttonIndex
{
NSLog ( @"%d" ,buttonIndex); //结果从上到下为0~n
}
容器类控件:UIImageView,UIScrollView
UIImageView视图载体和UIImage加载视图:
a: UIImage是真实中的图片源。
b: UIImageView是UIImage的载体,负责显示UIImage而且设置其大小和模式。
eg:
.contentMode用来设置图片显示内容模式
.animationImages设置要播放的图片数组
.animationDuration设置周期时间
.animationRepeatCount播放次数
UIScrollView:
常用属性:
// 设置 UIScrollView 的滚动范围(内容大小) scrollView. contentSize = CGSizeMake ( int , int );
// 隐藏水平滚动条 scrollView. showsHorizontalScrollIndicator = NO ; scrollView. showsVerticalScrollIndicator = NO ;
// 用来记录 scrollview 滚动的位置 scrollView.contentOffset
// 去掉弹簧效果 scrollView.bounces = NO;
// 增加额外的滚动区域 scrollView. contentInset = UIEdgeInsetsMake (top,left,bottom,right);
a: scrollView的缩放问题
当用户尝试缩放UIScrollView的时候,scrollerView会尝试向它的delegate(代理对象)发送一条消息,询问要缩放哪一个子控件,scrollView会尝试调用delegate的某个方法,询问要缩放哪一个子控件,并且该方法的返回值就是要缩放的子控件 。
步骤:
1 控制器遵守UIScrollViewDelegate协议<UIScrollViewDelegate>
2 设置scrollView的delegate为控制器(self)
3 设置最大和最小缩放比例
// 设置最大伸缩比例 scrollView. maximumZoomScale = 2.0 ; // 设置最小伸缩比例 scrollView. minimumZoomScale = 0.2 ;
4 控制器实现 的方法
-( UIView *)viewForZoomingInScrollView:( UIScrollView *)scrollView
{
return 图片的大小;
}
b:scrollView的循环滚动问题:多加载虚假的前后两张图片
eg:
-( void )scrollViewDidScroll:( UIScrollView *)scrollView { int page = scrollView. contentOffset . x / scrollView. frame . size . width ; _pageControl . currentPage = page; // 设置页码 } -( void )scrollViewDidEndDecelerating:( UIScrollView *)scrollView
{ int currentPage = ( _scrollView . contentOffset . x /scrollView. frame . size . width ); if (currentPage== 0 )
{ // 如果是第一页 , 也就是接下来要开始从最后一页循环 [ _scrollView setContentOffset : CGPointMake ( w * kCount , 0 ) animated : NO ]; }
else if (currentPage== kCount )
{ // 如果是最后 +1, 也就是接下来要开始从第一页循环 [ _scrollView setContentOffset : CGPointMake ( 320 , 0 ) animated : NO ]; } }
指示类控件:UIPageControl, UIProgressView,UIAcitcityIndicator
UIPageControl:
常用属性:
eg:pageControl. numberOfPages = 数量 ; // 一共显示多少个圆点(多少页)
pageControl. pageIndicatorTintColor = [ UIColor red Color ]; // 设置非选中页的圆点颜色
pageControl. currentPageIndicatorTintColor = [ UIColor blueColor ]; // 设置选中页的圆点颜色
pageControl. enabled = NO ; // 禁止默认的点击功能
pageControl . currentPage = page;// 设置页码
UIProgressView 进度条控件
eg: 高度默认自身的
UIActivity Indicator 活动指示器,无限菊花
// 订阅按钮升起的系统通知
[[ NSNotificationCenter defaultCenter ] addObserver : self selector : @selector (keyboardWillShow) name : UIKeyboardWillShowNotification object : nil ];
-( void )keyboardWillShow
{
[ UIView animateWithDuration : 0.25 animations :^
{
_button . frame = CGRectMake ( 10 , 220 , 300 , 30 ); //升起的位置
//一般情况下可以把整个视图都升起
} completion :^( BOOL finished)
{
}];
}
文本类控件: UILabel,UITextField,UITextView
按钮类控件: UIButton,UISwitch,UISegmentControl
调节类控件: UISlider,UIStepper
选择,警告类控件: UIDatePick, UIPickView, UIAlertView
容器类控件: UIImageView, UIScrollView
指示类控件: UIPageControl, UIProgressView,UIAcitcityIndicator
控件使用步骤:
a 初始化控件,设置位置,.........
b 加载到视图,
c 释放
View属性:
文本类控件
UILabel 标签:显示文本
eg: baselineAdjustment 设置基线位置(只有1行文本时才有效)
numberOfLines 设置显示行数(0表示不限)
lineBreakMode 设置超出内容宽度时的模式
UITextField:用于文本的输入,支持单行
eg : //回收键盘:设置<UITextFieldDelegate>
-( BOOL )textFieldShouldReturn:( UITextField *)textField
{
[textField resignFirstResponder ]; // 撤销第一响应
return YES ;
}
UITextView:用于文本的输入,支持多行
eg: // 回收键盘:加按钮键盘来辅助
- ( IBAction )button:( UIButton *)sender
{
[ self . textView resignFirstResponder ]; // 撤销第一响应
}
按钮类控件
UIButton 按钮:
一般情况下 UIButton是不用实例化的, 通过UIButton类提供的工厂方法来获得实例, 工厂方法返回的实例是Autorelease类型的,不需要释放内容。
eg: // addTarget 设置点击按钮
[button addTarget :对象 action : @selector (实例方法) forControlEvents : UIControllerEventTouchUpInside ];
UISwitch 开关控件:
eg: 高度默认自身的
调节类控件:UISlider,UIStepper
UISlider 滚动条:
eg: 高度默认自身的
选择,警告类控件:UIDatePick, UIPickView, UIAlertView
UIDatePicker 日期选择器:
eg: //获取UIDatePicker里的日期
NSDate *date = self . dataPicker . date ;
//创建时间格式
NSDateFormatter *formatter = [[ NSDateFormatter alloc ] init ];
[formatter setDateFormat : @"yyyy-MM-dd hh-mm-ss" ];
NSString *selectDate = [formatter stringFromDate :date];
self . label . text = selectDate;
UIPickerView自身不存储数据的,它的数据存储在它的委托中
<UIPickerViewDataSource> :
eg: 高度默认自身
eg: // 设置UIPickerView的列数
-( NSInteger )numberOfComponentsInPickerView:( UIPickerView *)pickerView
{
return 整数 ;
}
//设置每列的行数
-( NSInteger )pickerView:( UIPickerView *)pickerView numberOfRowsInComponent:( NSInteger )component
{
if(component == 0) //第一列
{
return 3;
}
return 5 //第二例
}
<UIPickerViewDelegate>设置数据
eg : // 设置行的内容
-( NSString *)pickerView:( UIPickerView *)pickerView titleForRow:( NSInteger )row forComponent:( NSInteger )component
{
return 内容;
}
// 设置选中内容到 label
-( void )pickerView:( UIPickerView *)pickerView didSelectRow:( NSInteger )row inComponent:( NSInteger )component
{
self.myLayer.text = 内容;
}
UIActionSheet操作表
警告:alertView:
eg:
- ( IBAction )alertClick:( id )sender
{
UIAlertView *alert = [[ UIAlertView alloc ] initWithTitle : @"YES" message : @"Are you sure ?" delegate : self cancelButtonTitle : @"NO" otherButtonTitles : @"test1" , nil ];
[alert show ]; //将UIAlertView显示出来
}
//delegate 设置点击后的调用
-( void )alertView:( UIAlertView *)alertView clickedButtonAtIndex:( NSInteger )buttonIndex
{
NSLog ( @"%d" ,buttonIndex); //结果从上到下为1~n,最后一个为0
}
从底部弹出 ActionSheet 组件:
eg:
- ( IBAction )actionClick:( id )sender
{
UIActionSheet *sheet = [[ UIActionSheet alloc ] initWithTitle : @" 确认购买 " delegate: self cancelButtonTitle : @" 取消购买 " destructiveButtonTitle : @" 销毁 " otherButtonTitles: @"test11" , nil ];
[sheet showInView : self . view ]; // 显示
}
//delegate 设置点击后的调用
-( void )actionSheet:( UIActionSheet *)actionSheet clickedButtonAtIndex:( NSInteger )buttonIndex
{
NSLog ( @"%d" ,buttonIndex); //结果从上到下为0~n
}
容器类控件:UIImageView,UIScrollView
UIImageView视图载体和UIImage加载视图:
a: UIImage是真实中的图片源。
b: UIImageView是UIImage的载体,负责显示UIImage而且设置其大小和模式。
eg:
.contentMode用来设置图片显示内容模式
.animationImages设置要播放的图片数组
.animationDuration设置周期时间
.animationRepeatCount播放次数
UIScrollView:
常用属性:
// 设置 UIScrollView 的滚动范围(内容大小) scrollView. contentSize = CGSizeMake ( int , int );
// 隐藏水平滚动条 scrollView. showsHorizontalScrollIndicator = NO ; scrollView. showsVerticalScrollIndicator = NO ;
// 用来记录 scrollview 滚动的位置 scrollView.contentOffset
// 去掉弹簧效果 scrollView.bounces = NO;
// 增加额外的滚动区域 scrollView. contentInset = UIEdgeInsetsMake (top,left,bottom,right);
a: scrollView的缩放问题
当用户尝试缩放UIScrollView的时候,scrollerView会尝试向它的delegate(代理对象)发送一条消息,询问要缩放哪一个子控件,scrollView会尝试调用delegate的某个方法,询问要缩放哪一个子控件,并且该方法的返回值就是要缩放的子控件 。
步骤:
1 控制器遵守UIScrollViewDelegate协议<UIScrollViewDelegate>
2 设置scrollView的delegate为控制器(self)
3 设置最大和最小缩放比例
// 设置最大伸缩比例 scrollView. maximumZoomScale = 2.0 ; // 设置最小伸缩比例 scrollView. minimumZoomScale = 0.2 ;
4 控制器实现 的方法
-( UIView *)viewForZoomingInScrollView:( UIScrollView *)scrollView
{
return 图片的大小;
}
b:scrollView的循环滚动问题:多加载虚假的前后两张图片
eg:
-( void )scrollViewDidScroll:( UIScrollView *)scrollView { int page = scrollView. contentOffset . x / scrollView. frame . size . width ; _pageControl . currentPage = page; // 设置页码 } -( void )scrollViewDidEndDecelerating:( UIScrollView *)scrollView
{ int currentPage = ( _scrollView . contentOffset . x /scrollView. frame . size . width ); if (currentPage== 0 )
{ // 如果是第一页 , 也就是接下来要开始从最后一页循环 [ _scrollView setContentOffset : CGPointMake ( w * kCount , 0 ) animated : NO ]; }
else if (currentPage== kCount )
{ // 如果是最后 +1, 也就是接下来要开始从第一页循环 [ _scrollView setContentOffset : CGPointMake ( 320 , 0 ) animated : NO ]; } }
指示类控件:UIPageControl, UIProgressView,UIAcitcityIndicator
UIPageControl:
常用属性:
eg:pageControl. numberOfPages = 数量 ; // 一共显示多少个圆点(多少页)
pageControl. pageIndicatorTintColor = [ UIColor red Color ]; // 设置非选中页的圆点颜色
pageControl. currentPageIndicatorTintColor = [ UIColor blueColor ]; // 设置选中页的圆点颜色
pageControl. enabled = NO ; // 禁止默认的点击功能
pageControl . currentPage = page;// 设置页码
UIProgressView 进度条控件
eg: 高度默认自身的
UIActivity Indicator 活动指示器,无限菊花
// 订阅按钮升起的系统通知
[[ NSNotificationCenter defaultCenter ] addObserver : self selector : @selector (keyboardWillShow) name : UIKeyboardWillShowNotification object : nil ];
-( void )keyboardWillShow
{
[ UIView animateWithDuration : 0.25 animations :^
{
_button . frame = CGRectMake ( 10 , 220 , 300 , 30 ); //升起的位置
//一般情况下可以把整个视图都升起
} completion :^( BOOL finished)
{
}];
}