UIDatePicker、UIPickView和UICollectionView

1.  视图中的委托协议与数据源协议

相对简单的视图只指定了委托协议,例如UITextField(UITextFieldDelegate)和UITextView(UITextViewDelegate)

复杂的高级视图同时指定委托协议与数据源协议,主要有选择器(UIPickView)、集合视图(UICollectionView)和表视图(UITableView),对应的数据源协议命名同样是“视图名+DateSource”

(1) 日期选择器

代码部分和效果图:

UIDatePicker、UIPickView和UICollectionView_第1张图片

(2)普通选择器 UIPickView  :  UIPickViewDataSource 和UIPickViewDelegate协议

首先 创建plist文件,保存地区数据。

代码部分先根据plist文件路径取出所有数据,然后依次添加控件选择器、显示标签和按钮,再实现按钮的点击事件,最后分别实现数据源方法和代理方法。

主要代码和效果图如下:

UIDatePicker、UIPickView和UICollectionView_第2张图片


UIDatePicker、UIPickView和UICollectionView_第3张图片

(3)集合视图UICollectionView

UICollectionView继承自UIScrollView,也有两个协议UICollectionViewDataSource和UICollectionViewDelegate. 

UICollectionViewCell是单元格类,它的布局由UICollectionViewLayout类定义,是抽象类。UICollectionViewFlowLayout类是UICollectionViewLayout的子类。------对于复杂的布局,可以自定义UICollectionViewLayout。 UICollectionView对应的控制器是UICollectionViewController。

如下图:

UIDatePicker、UIPickView和UICollectionView_第4张图片


直接上代码


UIDatePicker、UIPickView和UICollectionView_第5张图片

底下是UICollectionView的三个数据源方法----------[一般实现前两个就可以了。如果你需要对colltionView本身重用的话,就需要创建CollectionReusableView(继承自UICollectionReusableView)这个类,并实现第三个数据源方法]

UIDatePicker、UIPickView和UICollectionView_第6张图片

这里分别是UICollectionView的代理方法和UICollectionViewDelegateFlowLayout代理方法

UIDatePicker、UIPickView和UICollectionView_第7张图片

这是最终的效果图:


UIDatePicker、UIPickView和UICollectionView_第8张图片

你可能感兴趣的:(UIDatePicker、UIPickView和UICollectionView)