/ / Obj-C、UIActionSheetの[キャンセル]ボタンをタップするのが難しいのはなぜですか? --ios、cocoa-touch、uiactionsheet

Obj-C、私のUIActionSheet Cancelボタンがタップするのはなぜ難しいですか? - イオス、ココアタッチ、ユーザーシート

アプリでキャンセルボタンをタップするのが難しいことに気づきました。ヒットエリアが中央にないようです。

これをどうやって解決するのですか?

私のコードをヘレス...

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@""
delegate:dg
cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil
otherButtonTitles: @"Help Pages", @"Tutorial",
@"Feedback / Questions ", @"Facebook Group", @"About", nil];

actionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;
[actionSheet setTag:CommonUIActionSheetHelp];
[actionSheet showInView:vw];
[actionSheet release];

回答:

回答№1は5

聖霊降臨祭のラビンの答えに同意し、あなたは試すことができます

[actionSheet showInView:[UIApplication sharedApplication].keyWindow];

それも役立ちます


回答№2の6

私はあなたの問題はにあると思います [actionSheet showInView:vw];、おそらくアプリケーション(下部)でtabBarController / toolBarを使用している場合、このエラーはそのときに発生します。

どちらかを使用する必要があります showFromToolbar または showFromTabBar あなたのデザインに従って。デザインが異なる場合は、その旨をお知らせください(tabBar / toolBarがない場合)。

ありがとう


回答№3の場合は0

iOS8でも同様の問題があります。 UIAlertController スタイルで UIAlertControllerStyleActionSheet.

問題は、アクションシートの最初のタップが無視されることです。

それは私のテキストフィールドのキーボードがタッチを妨げることに関係していることが判明しました。

修正は、最初にキーボードを閉じてから、アクションシートを提示することです。

[textfield resignFirstResponder];
[self presentViewController:alert animated:YES completion:nil];