0

UICollectionViewを使用して小さなアプリを作成します。「longPress」をタップしたときに編集メニューを変更したいのですが、変更できません。

元。「切り取り」を「削除」に変更します。


以下のコードのようにActionSheetを実装します。しかし、UICollectionViewのスコープ外にActionSheetDelegateを実装する必要があるため、これは望ましくありません。

performAction制御しやすいようにActionSheetinsideメソッドを実装したいと思います。
なにか提案を?ありがとうございました!

- (BOOL)collectionView:(QSCollectionView *)collectionView shouldShowMenuForItemAtIndexPath:(NSIndexPath *)indexPath{
    QSCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
    UIActionSheet *deleteButton = [[UIActionSheet alloc] initWithTitle:[NSString stringWithFormat:@"Remove: %@",[collectionView.collectionData objectAtIndex:indexPath.row]] delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"OK" otherButtonTitles: nil];
    [deleteButton showFromRect:CGRectMake(0, 57, 57, 20) inView:cell animated:NO];
    return YES;
}
-(BOOL)collectionView:(QSCollectionView *)collectionView canPerformAction:(SEL)action forItemAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender{
    return YES;
}
-(void)collectionView:(QSCollectionView *)collectionView performAction:(SEL)action forItemAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender{
}
//ActionSheet
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
    switch (buttonIndex) {
        case 0:
            NSLog(@"Delete");
            break;
        default:
            break;
    }
}
4

1 に答える 1

2

UIActionSheet独自のクラスを実装し、longPressアクションが発生したときにそれを示す必要があります。

UIActionSheetのプロトコルドキュメントとUIActionSheetクラスリファレンスは次のとおりです。

于 2012-11-23T13:55:26.357 に答える