欢迎光临
我们一直在努力

仿写《今日头条》的tag选择页面

建站超值云服务器,限时71元/月

仿写《今日头条》的tag选择页面

项目介绍:

YZChannelTag

仿写《今日头条》的tag选择页面

item可以移动的collectionview实际应用

在《今日头条》中,该页面是用来选择自己感兴趣的频道标签从而改变segment的。标签功能应用的需求现在也比较多,主要使用collectionview中item可以移动的方法和思路来写这样的页面。

用法

ChannelTags *controller = 
      [[ChannelTags alloc]initWithMyTags:_myTags andRecommandTags:_recommandTags];
      
[self presentViewController:controller animated:YES completion:^{}];

可以直接加载出来该Controller,可自定义修改模态。

初始化

/**
初始化器

@param myTags 已选tag
@param recommandTags 推荐tag
@return id
*/
-(instancetype)initWithMyTags:(NSArray *)myTags andRecommandTags:(NSArray *)recommandTags;

初始化器传入两个字符类型元素的数组,做为两组不同的数据源,可以是NSMutableArray类型。在设置完成后数组元素会发生变化,再次进入页面后会加载新的数据源。

应用点

  • 在collectionview上添加的长按手势

//添加长按的手势
UILongPressGestureRecognizer *longPress = 
        [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPress:)];
        
[_mainView addGestureRecognizer:longPress];
  • 手势状态的变化和操作

- (void)longPress:(UIGestureRecognizer *)longPress {

  //获取点击在collectionView的坐标
  CGPoint point=[longPress locationInView:_mainView];
  
  //从长按开始
  NSIndexPath *indexPath=[_mainView indexPathForItemAtPoint:point];
  
  if (longPress.state == UIGestureRecognizerStateBegan) {
    [_mainView beginInteractiveMovementForItemAtIndexPath:indexPath];
    
  //长按手势状态改变
  } else if(longPress.state==UIGestureRecognizerStateChanged) {
    [_mainView updateInteractiveMovementTargetPosition:point];
    
  //长按手势结束
  } else if (longPress.state==UIGestureRecognizerStateEnded) {
    [_mainView endInteractiveMovement];
    
  //其他情况
  } else {
    [_mainView cancelInteractiveMovement];
  }
}
  • 实现回调方法

- (BOOL)collectionView:(UICollectionView *)collectionView canMoveItemAtIndexPath:(NSIndexPath *)indexPath;

-(void)collectionView:(UICollectionView *)collectionView moveItemAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath;

原地址:https://github.com/Shin1122/YZChannelTag

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 仿写《今日头条》的tag选择页面
分享到: 更多 (0)