UIPickerView和UICollectionView

PickerView常用方法总结

  • DataSource
  @required

  // 返回多少列
  - (NSInteger)tableView:(UITableView *)tableView     numberOfRowsInSection:(NSInteger)section;

  //返回多少行
  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

-Delegate

@optional
// 返回每一列的宽度
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component;

//返回列中每一行的高度
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component;

UICollectionVIew的一些方法

  • 选中头部标题还是尾部标题方法

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath {
  UICollectionReusableView *reusableview = nil;
  if (kind == UICollectionElementKindSectionHeader) {
    UICollectionReusableView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"exercisePhotoHeader" forIndexPath:indexPath];
    reusableview = headerView; 
 }
  return reusableview;

  • 创建cell方法(注意设置背景视图)


- (UICollectionViewCell*)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
 {
  UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"exercisePhotoCell" forIndexPath:indexPath];
  UIView *bv = [[UIView alloc] init];
  bv.backgroundColor = [UIColor lightGrayColor];
  cell.backgroundView = bv;
  UIView *sbv = [[UIView alloc] init];
  sbv.backgroundColor = [UIColor orangeColor];
  cell.selectedBackgroundView = sbv;
StartFragment EndFragment
  return cell; 
 }

-UICollectionView的代理方法



// 用户更改选择状态后调用以下方法
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
  //通常在选中某Cell进入详情页的情况下,第一件要做的事就是在进入到详情页前将该Cell的状态恢复到未选中,这样做可以保证从详情页回到列表页后,列表页并无已选中条目
  [collectionView deselectItemAtIndexPath:indexPath animated:YES];
  //进行相关操作
}
//取消选中时要做的事情
- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath;

//Cell与Reusable View即将出现时调用以下方法
- (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath ;

- (void)collectionView:(UICollectionView *)collectionView willDisplaySupplementaryView:(UICollectionReusableView *)view forElementKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)indexPath;
  • UICollectionViewDelegateFlowLayout


//定义每个Cell的尺寸
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath;

//定义最小行间距(恰恰就是行间距)
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section;

//定义Cell之间横向最小间距(大部分情况不是cell之间的间距)
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section;

你可能感兴趣的:(UIPickerView和UICollectionView)