日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
iOS9collectionView新特性

近日因為系統(tǒng)升級導致xcode6.系列版本出現(xiàn)bug,于是開始使用xcode7。在使用之余突然想到collectionView在iOS9中發(fā)布了一個可以移動cell的新特性,就嘗試著將其實現(xiàn),無奈api文檔接口無法查看,只有一些列的api放在那里。于是上網(wǎng)查找,發(fā)現(xiàn)國內沒有搜索到此類文章,于是FQ繼續(xù)找,最終找到的竟然都是swift版本,于是將其轉換為oc版本以幫助國內需要的朋友學習使用。下面是具體用法:

專注于為中小企業(yè)提供做網(wǎng)站、成都網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)南皮免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。

1.創(chuàng)建collectionView并設置代理

- (UICollectionView *)collectionView{
    if (_collectionView == nil) {
        UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
        layout.itemSize = CGSizeMake(50, 50);
        _collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 20, self.view.bounds.size.width, self.view.bounds.size.height) collectionViewLayout:layout];
        layout.minimumLineSpacing = 10;
        layout.minimumInteritemSpacing = 10;
        [_collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"Cell"];
        _collectionView.backgroundColor = [UIColor cyanColor];
        _collectionView.dataSource = self;
       //此處給其增加長按手勢,用此手勢觸發(fā)cell移動效果
        UILongPressGestureRecognizer *longGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handlelongGesture:)];
        [_collectionView addGestureRecognizer:longGesture];
    }
    return _collectionView;
}

2.設置其資源

_dataSource = [NSMutableArray array];
    for (int i = 1; i <= 50; i++) {
        NSString *imageName = [NSString stringWithFormat:@"%d",i];
        [_dataSource addObject:imageName];
    }

3.監(jiān)聽手勢,并設置其允許移動cell和交換資源

- (void)handlelongGesture:(UILongPressGestureRecognizer *)longGesture {
    //判斷手勢狀態(tài)
    switch (longGesture.state) {
        case UIGestureRecognizerStateBegan:{
            //判斷手勢落點位置是否在路徑上
            NSIndexPath *indexPath = [self.collectionView indexPathForItemAtPoint:[longGesture locationInView:self.collectionView]];
            if (indexPath == nil) {
                break;
            }
            //在路徑上則開始移動該路徑上的cell
            [self.collectionView beginInteractiveMovementForItemAtIndexPath:indexPath];
        }
            break;
        case UIGestureRecognizerStateChanged:
            //移動過程當中隨時更新cell位置
            [self.collectionView updateInteractiveMovementTargetPosition:[longGesture locationInView:self.collectionView]];
            break;
        case UIGestureRecognizerStateEnded:
            //移動結束后關閉cell移動
            [self.collectionView endInteractiveMovement];
            break;
        default:
            [self.collectionView cancelInteractiveMovement];
            break;
    }
}

- (BOOL)collectionView:(UICollectionView *)collectionView canMoveItemAtIndexPath:(NSIndexPath *)indexPath{
    //返回YES允許其item移動
    return YES;
}

- (void)collectionView:(UICollectionView *)collectionView moveItemAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath*)destinationIndexPath {
    //取出源item數(shù)據(jù)
    id objc = [_dataSource objectAtIndex:sourceIndexPath.item];
    //從資源數(shù)組中移除該數(shù)據(jù)
    [_dataSource removeObject:objc];
    //將數(shù)據(jù)插入到資源數(shù)組中的目標位置上
    [_dataSource insertObject:objc atIndex:destinationIndexPath.item];
} 

通過以上設置便可以成功移動cell了,下面奉上效果圖

至此collectionView的新特性使用方法展示完成,如其中有何錯誤之處望之處,謝謝!

我認為你會是我的全部,我為此拼搏奮斗,希望***不只是我認為!


文章題目:iOS9collectionView新特性
網(wǎng)址分享:http://www.5511xx.com/article/djdoiei.html