0

私はこの質問を数時間調査しましたが、私にはかなり単純に聞こえますが、実行可能な解決策を見つけることができませんでした. UIActionSheet を使用して削除を確認する iPad アプリケーションがあります。フォントサイズを大きくするためにラベルを追加しています。すべてが素晴らしく機能します。また、アクション シートが表示されている間は背景を暗くしてロックする必要があります。背景を暗くすることはできますが、背景をロックする方法がわかりません。そのため、ユーザーはアクション シートで選択して閉じる必要があります。UserInteractionEnabled を設定しようとしましたが、うまくいきません。何か案は?

// dim the background
UIView *dimViewDelete = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)];
dimViewDelete.backgroundColor = [UIColor blackColor];
dimViewDelete.alpha = 0.3f;
dimViewDelete.tag = 2222;
[self.view addSubview:dimViewDelete];

if ([self.listArray count] > 0)
{
    // create Action Sheet
    UIActionSheet * action = [[UIActionSheet alloc]
                              initWithTitle:@" "
                              delegate:self
                              cancelButtonTitle:@"Cancel"
                              destructiveButtonTitle:@"Delete"
                              otherButtonTitles:nil];
    [action addButtonWithTitle:@"Cancel"];
    [action setActionSheetStyle:UIActionSheetStyleBlackTranslucent];
    [action showInView:self.view];


    // change the font size of the title
    CGRect oldFrame = [(UILabel*)[[action subviews] objectAtIndex:0] frame];
    UILabel *addTitle = [[UILabel alloc] initWithFrame:oldFrame];
    addTitle.font = [UIFont boldSystemFontOfSize:22];
    addTitle.textAlignment = UITextAlignmentCenter;
    addTitle.backgroundColor = [UIColor clearColor];
    addTitle.textColor = [UIColor whiteColor];
    addTitle.text = @"Are You Sure?";
    [addTitle sizeToFit];
    addTitle.frame = CGRectMake(oldFrame.origin.x, oldFrame.origin.y,
                                oldFrame.size.width, addTitle.frame.size.height);

    [action addSubview:addTitle];
}
4

1 に答える 1

2

最善の選択肢は、独自のカスタム アクション シートのようなコントロールを実装することです。

2 つのボタンとラベル (タイトル用) を持つ単純なビュー コントローラーが必要です。View Controller をポップオーバーで表示します。ビュー コントローラーをモーダルにして、ボタンの 1 つをタップすることによってのみ閉じることができるようにします。これにより、背景がロックされているようにも見えます。

背景も暗くする必要がある場合は、ポップオーバーを表示する直前にUIView、メイン ウィンドウのサイズの画面を追加します。このビューの背景を に設定します[UIColor whiteColor:0 alpha:0.7]。適切な調光効果が得られるように、必要に応じてアルファを調整します。ビューのアルファをアニメーション化して、必要に応じてフェードインおよびフェードアウトすることもできます。

于 2013-01-03T17:48:15.063 に答える