ScrollView
ScrollView的作用
ScrollView的常见属性
ScrollView的常见属性示意图
ScrollView常见属性演练——简单使用
ScrollView的其他属性
属性 | 作用 |
BOOL bounces | 是否有弹簧效果 |
BOOL scrollEnabled | 是否能滚动 |
BOOL showsHorizontalScrollIndicator | 是否显示水平方向的滚动条 |
BOOL showsVerticalScrollIndicator | 是否显示垂直方向的滚动条 |
UIScrollViewIndicatorStyle indicatorStyle | 设定滚动条的样式 |
BOOL dragging | 是否正在被拖拽 |
BOOL tracking | 按住手指还没有开始拖动的时候值是YES,否则NO |
BOOL decelerating | 是否正在减速 |
BOOL zooming | 是否正在缩放 |
ScrollView的手势缩放步骤
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
与缩放相关的方法还包括:
// 正在缩放时调用的方法
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
// 缩放完成时调用的方法
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView*)view atScale:(float)scale
ScrollView的代理协议示意图
ScrollView实现分页效果
UIPageControl分页控制控件
UIPageControl控件监听页面变化方法
[pageControl addTarget:self action:@selector(pageChanged:) forControlEvents:UIControlEventValueChanged];// 添加事件监听方法
- (void)pageChanged:(UIPageControl *)pageControl// 页面变化调用方法
分页效果演练1——单张图片的分页效果
数据选择控件
UIDatePicker——方便用户选择日期
// 初始化日期控件,不用设置宽高,因为它的宽高是固定的
UIDatePicker *datePicker = [[UIDatePicker alloc]init];
// 设置日期控件区域为简体中文
[datePicker setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"zh_Hans_CN"]];
// 设置日期控件格式
[datePicker setDatePickerMode:UIDatePickerModeDate];
UIDatePicker——监听方法
// 设定日期控件监听方法
[datePicker addTarget:self action:@selector(dateValueChange:) forControlEvents:UIControlEventValueChanged];
NSDateFormatter——日期转换成字符串
// 设置日期格式
// 1. 实例化日期格式
NSDateFormatter*formatter = [[NSDateFormatter alloc]init];
// 2. 设置日期格式字符串
[formatter setDateFormat:@"yyyy-MM-dd"];
// 3. 将指定日期转换成字符串
NSString *dateString =[formatter stringFromDate:sender.date];
NSDateFormatter——字符串转换成日期
// 设置初始日期
NSDateFormatter *formatter= [[NSDateFormatter alloc]init];
[formattersetDateFormat:@"yyyy-MM-dd"];
NSDate *date= [formatter dateFromString:@”2000-01-01"];
[datePicker setDate:date];
UITextField扩展——设置键盘和键盘上面的工具栏
// 设置日期文本的输入键盘
[_dateText setInputView:datePicker];
// 设置键盘上面的工具控件
UIView*view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];
[view setBackgroundColor:[UIColor grayColor]];
[_dateText setInputAccessoryView:view];
UIDatePicker演练
照片选择
照片选择代理方法
UIPickerView——数据选择视图
UIPickerView——数据源
- (NSInteger)numberOfComponentsInPickerView:
// 返回第component列的行数
- (NSInteger)pickerView:numberOfRowsInComponent:
[pickerView reloadComponent:1];
一旦调用了这个方法,就会重新给数据源发送消息计算这列的行数、重新给代理发送消息获得这列的内容
UIPickerView——代理
// 第component列第row行显示什么字符串内容
- (NSString *)pickerView:titleForRow:forComponent:
// 每当选择了新的一行就会调用
- (void)pickerView:didSelectRow:inComponent:
UIPickerView——简单演练
UIPickerView——其他代理方法
// 第component列第row行显示什么样的UIView,最后一个view参数是用来性能优化的
- (UIView *)pickerView:viewForRow:forComponent:reusingView:
// 返回第component列每一行的高度
- (CGFloat)pickerView:rowHeightForComponent:
pickerView.showsSelectionIndicator = YES;
UIPickerView——自定义视图选择演练
UIPickerView综合实例演练
UITextField——常用代理方法扩展
// 当文本框开始获得焦点的时候调用
- (void)textFieldDidBeginEditing:
// 当用户失去焦点的时候调用
-(void)textFieldDidEndEditing:
// 在文本框准备聚焦的时候调用,返回NO代表不允许聚焦(编辑)
-(BOOL)textFieldShouldBeginEditing:
// 在文本框准备失去焦点(退出键盘)的时候调用,返回YES代表允许退出键盘
- (BOOL)textFieldShouldEndEditing:
// 在用户每次输入的时候都会调用,返回YES代表允许输入
-(BOOL)textField:
shouldChangeCharactersInRange:replacementString: