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;
}
}